3월 5일자

Hacking/Reversing 2018. 3. 5. 11:25
반응형

* 원하는 코드를 빨리 찾아내는 4가지 방법

1) 명령어 하나씩 직접 실행하면서 원하는 위치를 찾아가는 방법

2) All referenced text strings를 통해 문자열 검색

3) API 검색 후 호출 코드에 BP - All intermodular calls 이용

4) API 코드에 직접 BP - Name in all modules 이용(Packer, Protecter 이용 시 API 호출 목록이 보이지 않으므로 로딩된 라이브러리(DLL 코드)에 직접 BP


 - 3, 4의 차이는 직접 이 프로그램에서 호출한 곳에 BP를 거느냐, DLL 내 API에 BP를 걸어 사용할 때 잡히게 할거냐 의 차이


- API에 BP걸 때 이용하는 기능 구분

 All intermodular calls

 코드에서 호출되는 모든 API 함수 보기 

 Name in all modules 

 모든 API 함수 보기 



* Label과 Comment의 차이

 - Label 은 메모리 값에 이름을 붙어주는 것이므로 추후 해당 메모리를 CALL할 때 붙여준 이름으로 나타난다.

 - Comment는 말그대로 해당하는 한 줄에 주석을 다는 것


* 범용 레지스터 쓰임새

 - EAX : 주로 함수의 return값이나 사칙연산의 결과값 저장

 - EBX 

 - ECX : 반복문의 count를 저장, 반복문이 돌때마다 1씩 감소

 - EDX

 - ESP : Stack pointer

 - EBP : Stack frame을 위한 레지스터로 ESP의 값을 저장해두는 곳

 - ESI : Source pointer 로서 값 복사를 위해 주로 사용

 - EDI : Destination pointer 로서 값 복사를 위해 주로 사용


* 바이트 수

BYTE = 1바이트

WORD = 2바이트

DWORD  = 4바이트


* Calling Convention (함수 호출 규약)

cdecl : Caller가 스택 정리

stdcall : Callee가 스택 정리

반응형

'Hacking > Reversing' 카테고리의 다른 글

Ollydbg 창 설명 및 기초  (0) 2019.02.10
Visual Basic 파일 분석  (0) 2018.11.18
immunity debugger가 바로 꺼질 때 해결  (2) 2016.01.03
블로그 이미지

rootable

,