유저모드 디버거하면 바로 가장 유명한 올리디버거(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로 저장해줍니다.
이렇게 변경한 플러그인으로 실행하면
잘 어태치 되는것을 확인 할 수 있습니다.
원본 파일과 수정한 두 파일을 첨부해 놓겠습니다.
불친절한 설명을 읽어주셔서 감사합니다.
'IT > Reversing' 카테고리의 다른 글
WinDBG 명령어 정리 (0) | 2018.08.09 |
---|---|
Reversing 할때 알아두면 좋은 주요 API 모음 (0) | 2018.08.07 |
[OllyDbg Plugin] 빠르고 간단하게 어태치하자 (0) | 2017.05.08 |
[Reversing.kr 풀이] Easy Crack (상당히 불친절한 풀이) (1) | 2015.09.16 |