본문 바로가기
Programming/Hacking & Security

[Reversing] C언어로 작성된 코드 분석 By 용호

by ★용호★ 2010. 5. 21.

2010년 5월 20일 목요일

C언어로 작성된 코드(.c파일)를 컴파일하기 위해 비쥬얼 스튜디오의 CLI환경을 이용한다.

CLI 환경에서 "Cl 파일명.c /link /debug /opt:icf" 명령을 수행하면 컴파일 된다.




코드를 분석하기 위해 Olldbg 툴보다는 IDA가 편하기 때문에 이제부터는 IDA 프로그램을 사용한다.

▶ 프로그램





Stdcall은 callee 방식이므로 retn 8 을 해주는데 여기서 8은 스택에 공간을 할당한 크기이고,
Retn 8을 해주면 자동으로 ebp+8이 된다.




Cdecl 을 할때는 eax, ecx에 값을 넣어 push를 해주고 stdcall을 할때는 edx, eax에 값을 넣어
Push를 해주는데 이것은 크게 상관이 없다. 범용 레지스터이므로 어디에 값을 넣어도 상관없다.








Switch문은 비교를 위한 공간을 프로그래머가 할당하지 않아도 자동으로 할당해서 비교한다.



If문의 특징은 비교구문이 반대로 나타난다.
Loc_40101E: 부분의 xor는 return 0을 한다는 의미한다.




▶ 코드 파일


댓글