reversing/리버싱 코드 복원
04.Function_Quiz_01_01
grinidia
2025. 6. 11. 11:49
문제
문제풀이
00401000 /$ 55 PUSH EBP
00401001 |. 8BEC MOV EBP, ESP
00401003 |. 51 PUSH ECX
00401004 |. 8B45 08 MOV EAX, DWORD PTR SS:[EBP+8] ; 04_02_01.<ModuleEntryPoint>
00401007 |. 0345 0C ADD EAX, DWORD PTR SS:[EBP+C]
0040100A |. 8945 FC MOV DWORD PTR SS:[EBP-4], EAX
0040100D |. 8BE5 MOV ESP, EBP
0040100F |. 5D POP EBP ; kernel32.7C816D4F
00401010 \. C3 RETN
00401011 /$ 55 PUSH EBP
00401012 |. 8BEC MOV EBP, ESP
00401014 |. 83EC 08 SUB ESP, 8
00401017 |. C745 F8 0900000>MOV DWORD PTR SS:[EBP-8], 9
0040101E |. 8B45 F8 MOV EAX, DWORD PTR SS:[EBP-8] ; kernel32.7C816D58
00401021 |. 83C0 02 ADD EAX, 2
00401024 |. 8945 FC MOV DWORD PTR SS:[EBP-4], EAX
00401027 |. 8B4D FC MOV ECX, DWORD PTR SS:[EBP-4]
0040102A |. 51 PUSH ECX ; /Arg2 = 0012FFB0
0040102B |. 8B55 F8 MOV EDX, DWORD PTR SS:[EBP-8] ; |kernel32.7C816D58
0040102E |. 52 PUSH EDX ; |Arg1 = 7C93EB94
0040102F |. E8 CCFFFFFF CALL 04_02_01.00401000 ; \04_02_01.00401000
00401034 |. 83C4 08 ADD ESP, 8
00401037 |. 33C0 XOR EAX, EAX
00401039 |. 8BE5 MOV ESP, EBP
0040103B |. 5D POP EBP ; kernel32.7C816D4F
0040103C \. C2 1000 RETN 10
#include <windows.h>
method(n1, n2)
{
int n3 = n1 + n2;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
int n1 = 9;
int n2 = n1 + 2;
method(n1, n2);
return 0;
}
설명이 필요하지 않을 정도의 쉬운 문제