• [ Reversing.kr ] CSHOP writeup

    2020. 2. 28.

    by. ugonfor

    오랜만에 글을 쓰네요..

     

    어이없게 문제를 풀었습니다..

    그런데 더 어이없는 건, 문제를 풀고 나니 코드가 어떤 의미였는 지 알겠다는 겁니다.. ㅜ ㅜ

    코드가 어떤의민지 알고 문제를 풀어야 뿌듯한데...

     

    일단.... 문제의 해답은... "엔터" 입니다...

    리버싱문제가 대부분 그렇듯이, 보통 입력값을 받으면 flag가 출력이 됩니다. 하지만, CSHOP 문제의 경우에는 아무리 봐도 입력값을 줄 만한 곳이 없더군요..

     

    마우스로 클릭할 만한 것도 없고, 대체 입력값도 줄 수 없고, 그래서 도대체 뭔지 하고 고민하다가 엔터를 한번 눌렀는 데, 플래그가 뜨네요...

     

    플래그가 뜨고나니까 그전까지 .net 코드 보던 것이 어떤 의미인지 알았습니다..

     

    메인 함수가 FrmMain()함수를 Run 하는 게 전부이길래, FrmMain을 봤습니다. 

    또 함수 호출 하네요.

     

    호출하는 함수의 코드입니다. 

    C# 코드라서 조금 보기 어렵네요

    private void InitializeComponent()
    		{
    			ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof(FrmMain));
    			this.\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD = new Button();
    			this.lbl\u007F\u000A = new Label();
    			this.lbl\u007F\u000D = new Label();
    			this.lbl\u007F\u0014 = new Label();
    			this.lbl\u007F\u0015 = new Label();
    			this.lbl\u007F\u0011 = new Label();
    			this.lbl\uFFFD\u0014 = new Label();
    			this.lbl\u007F\u0019 = new Label();
    			this.lbl\u007F\u0001 = new Label();
    			this.lbl\u007F\u0003 = new Label();
    			this.lbl\u007F\u0002 = new Label();
    			base.SuspendLayout();
    			this.\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD.Location = new Point(165, 62);
    			this.\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD.Name = "btnStart";
    			this.\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD.Size = new Size(0, 0);
    			this.\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD.TabIndex = 0;
    			this.\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD.UseVisualStyleBackColor = true;
    			this.\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD.Click += this.\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD_Click;
    			this.lbl\u007F\u000A.Location = new Point(43, 123);
    			this.lbl\u007F\u000A.Name = "lblGu";
    			this.lbl\u007F\u000A.Size = new Size(53, 23);
    			this.lbl\u007F\u000A.TabIndex = 1;
    			this.lbl\u007F\u000A.Text = "label1";
    			this.lbl\u007F\u000D.Location = new Point(90, 123);
    			this.lbl\u007F\u000D.Name = "lblNu";
    			this.lbl\u007F\u000D.Size = new Size(53, 23);
    			this.lbl\u007F\u000D.TabIndex = 2;
    			this.lbl\u007F\u000D.Text = "label2";
    			this.lbl\u007F\u0014.Location = new Point(135, 123);
    			this.lbl\u007F\u0014.Name = "lblSu";
    			this.lbl\u007F\u0014.Size = new Size(53, 23);
    			this.lbl\u007F\u0014.TabIndex = 3;
    			this.lbl\u007F\u0014.Text = "label3";
    			this.lbl\u007F\u0015.Location = new Point(182, 123);
    			this.lbl\u007F\u0015.Name = "lblTu";
    			this.lbl\u007F\u0015.Size = new Size(53, 23);
    			this.lbl\u007F\u0015.TabIndex = 4;
    			this.lbl\u007F\u0015.Text = "label4";
    			this.lbl\u007F\u0011.Location = new Point(228, 123);
    			this.lbl\u007F\u0011.Name = "lblKu";
    			this.lbl\u007F\u0011.Size = new Size(53, 23);
    			this.lbl\u007F\u0011.TabIndex = 5;
    			this.lbl\u007F\u0011.Text = "label4";
    			this.lbl\uFFFD\u0014.Location = new Point(278, 123);
    			this.lbl\uFFFD\u0014.Name = "ppppp";
    			this.lbl\uFFFD\u0014.Size = new Size(53, 23);
    			this.lbl\uFFFD\u0014.TabIndex = 6;
    			this.lbl\uFFFD\u0014.Text = "label4";
    			this.lbl\u007F\u0019.Location = new Point(324, 123);
    			this.lbl\u007F\u0019.Name = "lblMu";
    			this.lbl\u007F\u0019.Size = new Size(53, 23);
    			this.lbl\u007F\u0019.TabIndex = 7;
    			this.lbl\u007F\u0019.Text = "label4";
    			this.lbl\u007F\u0001.Location = new Point(369, 123);
    			this.lbl\u007F\u0001.Name = "lblXu";
    			this.lbl\u007F\u0001.Size = new Size(53, 23);
    			this.lbl\u007F\u0001.TabIndex = 8;
    			this.lbl\u007F\u0001.Text = "label4";
    			this.lbl\u007F\u0003.Location = new Point(413, 123);
    			this.lbl\u007F\u0003.Name = "lblZu";
    			this.lbl\u007F\u0003.Size = new Size(53, 23);
    			this.lbl\u007F\u0003.TabIndex = 9;
    			this.lbl\u007F\u0003.Text = "label4";
    			this.lbl\u007F\u0002.Location = new Point(457, 123);
    			this.lbl\u007F\u0002.Name = "lblQu";
    			this.lbl\u007F\u0002.Size = new Size(53, 23);
    			this.lbl\u007F\u0002.TabIndex = 10;
    			this.lbl\u007F\u0002.Text = "label4";
    			base.AutoScaleDimensions = new SizeF(7f, 12f);
    			base.AutoScaleMode = AutoScaleMode.Font;
    			base.ClientSize = new Size(626, 316);
    			base.Controls.Add(this.lbl\u007F\u0002);
    			base.Controls.Add(this.lbl\u007F\u0003);
    			base.Controls.Add(this.lbl\u007F\u0001);
    			base.Controls.Add(this.lbl\u007F\u0019);
    			base.Controls.Add(this.lbl\uFFFD\u0014);
    			base.Controls.Add(this.lbl\u007F\u0011);
    			base.Controls.Add(this.lbl\u007F\u0015);
    			base.Controls.Add(this.lbl\u007F\u0014);
    			base.Controls.Add(this.lbl\u007F\u000D);
    			base.Controls.Add(this.lbl\u007F\u000A);
    			base.Controls.Add(this.\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD);
    			base.FormBorderStyle = FormBorderStyle.FixedSingle;
    			base.Icon = (Icon)componentResourceManager.GetObject("$this.Icon");
    			base.MaximizeBox = false;
    			base.Name = "FrmMain";
    			base.StartPosition = FormStartPosition.CenterScreen;
    			this.Text = "CSHOP";
    			base.Load += this.Form1_Load;
    			base.ResumeLayout(false);
    		}

     

    하여튼 요약하자면, 프로그램 초기값 설정하는 건데, 

    여기가 제일 중요하더군요. 저기에 보면 저 변수가 button으로 되어 있어서 누르는 것인거 같은 데 파란색 동그라미 해둔 부분이 0,0 으로 사이즈가 0여서 버튼이 전혀 보이지 않던 것입니다.

    그래서 저걸 10, 10으로 하면 정상적으로 버튼을 볼 수 있어요

    지금처럼 ㅇㅇ....

     

    여튼 계쏙하자면

    여기서 값을 설정해주고,

    이후 이쪽 부분에서 값의 크기와 위치를 설정해주고,

     

    마지막에 다 설정된 것을 추가해준 다음 실행하더군요..

     

    그런데, 버튼을 누르지 않고 엔터만 해도 되는 건 그냥 엔터하면 버튼 누른거로 인식해서 되는 거더군요..

     

    너무 싱겁게 끝남

    'Writeup > Wargame_Writeup' 카테고리의 다른 글

    [ Reversing.kr ] CSHARP  (0) 2020.02.29
    [ Reversing.kr ] x64 Lotto Writeup  (0) 2020.02.28
    [ Reversing.kr ] AutoHotkey1 Writeup  (0) 2020.02.12
    [Reversing.kr] Ransomware  (0) 2020.02.07
    [Reversing.kr] Position.exe  (0) 2020.02.07

    댓글