유저모드 디버거하면 바로 가장 유명한 올리디버거(OllyDBG)가 있죠. 요즘은 x64dbg도 많이 쓰이는것 같습니다.


올리디버거 플러그인 중에 프로그램이 실행되면 자동으로 어태치시켜주고 어태치하는 시간도 설정할 수 있는 유용한 툴이 있죠

바로 AutoAttach 라는 플러그인 입니다.




About 매뉴는 제작자에 관한 메뉴라 눌러보실 필요 없고


Set process name 은 어태치할 프로세스명을 설정하는 칸입니다. 여기서 설정한 이름의 프로세스가 있으면 바로 어태치 시킵니다.


Set delay time은 Set process name에서 설정한 프로세스 발견시 얼마나 딜레이(밀리세컨드)를 주고 어태치 시킬지 설정하는 매뉴입니다.


하지만 이 툴의 단점이 있으니 바로 




확장자가 .xem같이 exe로 끝나지 않는 프로그램은 어태치 시키지 못한다는 것입니다.


일반적인 프로그램은 대부분 .exe로 되어있지만 


보안프로그램이나 악성코드, 게임핵툴의 경우 탐지/분석을 회피하기 위해 특수한 확장자명으로 되어있는 경우가 많습니다.




위와 같이 프로세스 명을 적고 해당 프로세스를 실행해도 어태치가 되지 않습니다.


다시 한번 Set process name 매뉴에 가보면





위 그림과 같이 내가 적은 프로세스명 뒤에 자동으로 + .exe 문자열을 붙여주는것을 확인 할 수 있습니다.


자 그럼 이것을 한번 수정해 보도록 하겠습니다.


아주 쉽고 간단하니 편하게 따라오시기 바랍니다.


IDA Hexray로 한번 대략적으로 플로그인 모듈을 살펴보도록 하겠습니다.





여러 함수가 보이는데 하나하나 살펴보다 보니 _ODBG_PluginMainloop에 주요 소스가 있는것을 확인 할 수 있습니다.


.exe를 붙인다는것을 감안해서 문자열 보기 (shift + f12)를 통해 찾아가셔도 좋습니다.





.exe 문자열을 찾고 그와 관련된 작업을 하는것을 알 수 있습니다.


여기서 분석가능하신 분도 계시겠지만 더 쉽게 툴의 힘을 빌려 f5를 눌러줍니다.






HexRay의 위엄... 거의 원본 소스 상태로 보여줍니다.


strstr 함수를 사용해서 사용자가 입력한 프로세스명이 .exe를 포함하지 않으면 뒤에 .exe를 붙여주는 코드가 있습니다.


이 코드때문에 .xem 파일을 어태치 할 수 없었습니다. 저 부분을 nop처리 하면 가뿐히 해결될걸로 보이네요.


수정은 OllyDBG로 해보도록 하겠습니다.







플러그인을 넣은 올리디버그를 실행하고 하나 더 실행해서 첫번째 실행한 올리디버그를 어태치 시켜줍니다.(올리디버그를 올리디버그로 어태치)


모듈 목록에 AutoAttach.dll이 보입니다.





문자열 검색을 해보니 역시나 .exe 부분이 나옵니다. 저기로 이동





exe가 있는지 비교하는 부분이 보이네요. 저 JNZ를 무조건 점프시키는 JMP로 변경하면 해결되겠네요.





이렇게 변경시킨뒤 파일로 저장합니다. 


저장법은 우클릭 -> Copy to executable -> All modifications


다음 save file로 저장해줍니다.


이렇게 변경한 플러그인으로 실행하면 







잘 어태치 되는것을 확인 할 수 있습니다.



원본 파일과 수정한 두 파일을 첨부해 놓겠습니다.


AutoAttach.dll

AutoAttach_m.dll


불친절한 설명을 읽어주셔서 감사합니다.


 



+ Recent posts