-
오랜만에 글을 쓰네요..
어이없게 문제를 풀었습니다..
그런데 더 어이없는 건, 문제를 풀고 나니 코드가 어떤 의미였는 지 알겠다는 겁니다.. ㅜ ㅜ
코드가 어떤의민지 알고 문제를 풀어야 뿌듯한데...
일단.... 문제의 해답은... "엔터" 입니다...
리버싱문제가 대부분 그렇듯이, 보통 입력값을 받으면 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 댓글