lea ( EAX, [TYPE DWORD SS:EBP-20] ); | EAX에 EBP-20의 주소를 넣는다 | |
push ( [TYPE DWORD SS:EBP+10] ); | EBP+10을 스택에 저장한다 | |
push ( EAX ); | EAX를 스택에 저장한다 | |
call packext.00403D6B; | 0x00403D6B을 실행한다 | |
add ( 0C, ESP ); | 0x0C에 ESP를 더한다 | ??? 값은 어디로가죠? |
dec ( [TYPE DWORD SS:EBP-1C] ); | EBP-1C 를 1 감소한다 | |
mov ( EAX, ESI ); | EAX에 ESI를 넣는다 | |
js packext.0040365F; | 부호가 1이면 0x0040365F로 이동한다 | 해당 부호는 cmp에서 넘어오는것 아닌가요? Cmp가 없는데 어디서 정보를 가져오죠? |
mov ( [TYPE DWORD SS:EBP-20], EAX ); | EBP-20에 EAX를 넣는다 | |
and ( 0, [TYPE BYTE DS:EAX] ); | 0x00 & EAX[1byte]… | cmp대신의 쓰는건가요.. |
jmp packext.0040366C; | 0x0040366C로 이동한다 | |
lea ( EAX, [TYPE DWORD SS:EBP-20] ); | EAX에 EBP-20의 주소를 넣는다 | |
push ( EAX ); | EAX를 스택에 저장한다 | |
push ( 0 ); | 0을 스택에 저장한다??? | |
call packext.00403C56; | 0x00403C56을 실행한다 | |
pop ( ECX ); | ECX를 스택에서 빼낸다 | |
pop ( ECX ); | ECX를 스택에서 빼낸다 | |
mov ( ESI, EAX ); | ESI에 EAX를 넣는다 | |
pop ( ESI ); | ESI를 스택에서 빼낸다 | |
leave; | 나가기? | |
retn; | 리턴하기? | 리턴 값은 뭔가요;;? |
어제 디컴파일에대해서 올렸다가..
결국 어샘블리어를 공부하려고하고있습니다.
기초에관한 웹문서를 읽어가며 해석해보고는있는데..
이해가 안되는 것들이 있어서요.
위와 같이 해석한게 옳은건가요?