t_memory - 메모리 관련 구조체
Findmemory(): 인자가 1개인 함수, 살펴보고 싶은 메모리 번지를 지정하면 해당 영역에 대한 각종 값을 t_memory 구조체에 채워주는 역할
Findmemory()에 넣은 메모리 번지에는 t_dump 구조체의 sel0 멤버 변수가 가리키고 있음
base는 401000으로 t_dump에서 구한 값과 동일한 값이다. 우리가 선택한 영역은 0x402D09 번지부터 0x402D26번지까지이므로 그 영역에 대한 PE를 구해서 역시 마찬가지로 BaseofCode와 ImageBase를 더한 값을 보여준다. size도 이와 마찬가지이다.
t_disasm - 디스어셈블 구조체
t_disasm 구조체는 실제 코드를 디스어셈블하는 역할을 한다. 따라서 각종 어려운 옵코드를 다 해석한다.
-> ‘PDK가 라이브러리가 맞다’고 알 수 있게 됨
가장 크기가 큰 구조체이지만, 실제로는 위에 표시되어 있는 대여섯 개만 봐도 충분하다. 이 구조체에 값을 채우려면 Readmemory()와 Disasm()이라는 OllyDBG API를 사용해야만 한다.
디버거 플러그인 해결한 오류
C4996
상단에 #define _CRT_NONSTDC_NO_DEPRECATE 정의해주었음
아직 해결하지 못한 오류
외부 참조 오류로만 7개 발생.
- 시도한 방법
https://olidang.tistory.com/102
(VS 버전이 달라 해결되지 않는 것으로 추정됨)
출처 : 리버스 엔지니어링 바이블
'4-8. 2021-1 심화 스터디 > 리버싱을 활용한 디버거 플러그인 개발' 카테고리의 다른 글
[2021.05.22] 리버싱을 활용한 디버거 플러그인 개발6 (0) | 2021.05.22 |
---|---|
[2021.05.08]리버싱을 활용한 디버거 플러그인 개발4 (0) | 2021.05.08 |
[2021.05.01]리버싱을 활용한 디버거 플러그인 개발3 (0) | 2021.05.01 |
[2021.03.27]리버싱을 활용한 디버거 플러그인 개발2 (0) | 2021.03.27 |
[2021.03.20] 리버싱을 활용한 디버거 플러그인 개발 1 (0) | 2021.03.20 |