본문 바로가기

4-8. 2021-1 심화 스터디/리버싱을 활용한 디버거 플러그인 개발

[2021.03.27]리버싱을 활용한 디버거 플러그인 개발2

지난 주 오류 피드백

 

초기화 코드를 수행하는 Plugininit() 함수 부분에서, Log Window에 문자열을 출력하기 위한  Addtolist가 ‘함수에서 참조되는 확인할 수 없는 외부 기호’ 라는 오류 발생

->해당 부분(Addtolist)은 MessageBox로 대체하여 작성하였음

ODBG_Plugindata() / ODBG_Plugininit() 결과 화면

 

 

ODBG_Plugininit 함수 : 초기화 코드를 수행.



메뉴 작성 - ODBG_Pluginmenu()

 

현재 상태로는 Plugin 메뉴를 눌렀을 때 바로 “HelloOlly” 메뉴가 선택돼 버리기 때문에 여러 가지 기능에 대한 처리를 할 수가 없음, 따라서 다음으로 이 부분에 대한 하위메뉴를 작성하는 작업과 추가적으로 마우스 오른쪽 버튼을 눌렀을 때 나타나는 팝업 메뉴를 작성할 예정임

PDK에서 메뉴 작성은 ODBG_Pluginmenu() 함수를 이용해 만들 수 있음

 

ODBG_Pluginmenu()에 들어오는 첫 번째 인자로는 case 문을 (메인 메뉴/팝업 메뉴 선택),. 두 번째 인자에는 아웃버퍼로 메뉴 이름을 기입하는 작업을 하면 기본적인 골격이 완성됨

 

메뉴 작성 - ODBG_Pluginmenu() 코드 발췌

 

 

출처 https://github.com/wikibook/reverseengineering/blob/master/5부%20OllyDBG%20Plugin/14%20OllyDBG%20플러그인%20SDK/HelloOlly_구조체추가된소스/HelloOlly.cpp

 

PM_MAIN : 메인 메뉴

PM_DISASM : CPU 윈도우에서의 팝업 메뉴

PM_THREADS : 스레드 윈도우에서의 팝업 메뉴

메뉴 작성 - ODBG_Pluginmenu() 실행화면

 



오류 발생 부분

 

->일단 Getstatus 있는 부분을 주석처리 한 채로 빌드하여 위의 메뉴 작성 실행 결과 확인하였음