반응형

아직까지 OllyDbg v2.01 버전이 정식 릴리즈 된 것은 아니기에 v1.10 버전과 같이 사용중입니다.
( v1.10 기반의 막강한 플러그인들을 무시할 순 없는 관계로... )

하지만 디버거 자체의 강력함 때문에 요 얼마간은 v1.10 보다는 v2.01 버전을 더 자주 사용하게 되더군요~

v1.10 과 비교했을 때 확연하게 달라진 부분들에 대해서 소개를 해볼까 합니다~
( 사실 v2.x 가 최초 공개된 시점이 몇년전인걸 감안하면 엄청난 뒷북이기도 합니다만;;;..-_-;; )


1. Attach 창의 확장



Process Attach 창에서 키보드 입력으로 Process Search 가 가능합니다.

저같은 경우 일을 하다보면~ 미묘한 타이밍의 틈새를 파고들어 Attach 를 해야하는 경우가 많은데,
매번 눈으로 프로세스를 찾는 것보다는 키보드로 입력하는 게 확실히 편하고 빠르더군요.
추가적으로 마우스 휠을 지원한다는 점도~~ :)..


2. 단축키 설정



단축키 자체는 v1.10 부터 있었지만, v2.01 에서는 그 단축키에 대한 설정 변경이 가능합니다.
기존의 설정이 마음에 들이 앉으면 사용자 입맛에 맞게 얼마든지 변경이 가능합니다.

개인적으로 프로세스에 대한 Attach / Detach 기능을 자주 쓰는 편인데~
이 부분을 단축키로 지정을 해두니깐~ 미묘하지만 작업 효율이 올라가더군요~ : )


3. 유저에게 보여주는 정보의 증가



타겟에서 CALL 명령이 들어있는 곳을 보여주는 기능인데~ 이전 버전에 비해 보여주는 정보의 양이 확실히 다릅니다.

캡쳐를 보면 알 수 있듯이 알려진 API 들인 경우, 인자 정보들 까지 출력을 해주는데~
분석을 하다보면 이런 정보들이 많으면 많을 수록 작업이 수월해지죠~ : )



보너스로 Disasm 창에서 PEB 영역을 본 결과입니다. PEB 에 대한 정보도 디버거 자체에서 파싱해서 보여주더군요.
시스템 구조체의 경우 왠만해선 보여주지 않을까 생각되네요~


4. Search for... 결과에 대한 탭 지원



Intermodular Calls 검색에 대한 결과와 Referenced String 검색에 대한 결과 창이 각각 따로 뜨면서
매번 창을 옮기면서 확인해야 하는 번거로움이 있었는데...
탭을 지원하면서 이런 부분이 해결되었습니다.


5. Ctrl - G 의 확장



OllyDbg 에서 가장 많이 사용하는 단축키 중의 하나가 아마도 Ctrl - G 일겁니다..
원하는 주소로 가기 위한 명령인데~ 캡쳐화면처럼 이 기능도 확장되었습니다.

v1.10 의 경우 Olly Advanced 플러그인 통해서 가능했던 것이...
v2.01 에서는 디버거 자체에서 지원을 해주더군요.


일단 개인적으로 눈에 뛰게 달라졌다(?) 싶은 점은 이 정도입니다.

하지만 아직 alpha 버전이고 v1.10 버전에 비해 안정성이 부족한 느낌인데...

이런 부분들은 차차 개선이 되겠죠~?ㅋ...

좀 더 개선이 된 올리를 기대하면서~~ㅋㅋ

ps... 여유되면 v1.10 플러그인들 분석해서 v2.01 로 옮기는 작업을 해볼까 합니다.ㅋ
       그때는 플러그인 맹그는 포스팅이 올라오지 않을까 싶네요.


반응형
AND

반응형

게임 해킹툴들을 찾아서 테스트를 하다보면...

어떤 것들은 C 런타임 라이브러리(CRT) 까지 같이 배포를 하는 경우가 종종 있습니다.


간혹, 필요한 라이브러리가 없어서 실행이 안되는 경우도 있고 하니...

이렇게 친절하게(?) 필요한 모듈을 같이 배포를 해주면 나름 편하긴 합니다~ :)


그런데 특정 조건을 위배하면 심하게 골때리는 상황이 발생합니다..

조건이 뭐냐하면...

C 런타임 라이브러리(CRT) 등의 공유 모듈은 SYSTEM 폴더에 복사하지 말라

요건데요...;;;

SYSTEM 폴더에는 이미 그 PC 에 필요한 공유 모듈들이 있을 확률이 매우 높습니다.

이미 기존 모듈이 있는데~ 배포시에 기존 모듈을 교체해버리면...;;

=_=;; 그 모듈과 의존성이 있는 프로그램들이 실행이 안되는 상황이 발생하기도 합니다;;;;


모듈 강제 배포의 폐해...


이런 식으로 말이죠.. -_-;;;


저는 나름대로 재배포 패키지는 기본적으로 OS 셋팅시 필수로 설치를 하기 때문에~~

msvcr100.dll (Version 10.0.30319.1) 파일이 있는 상태였습니다.

그런데... -_-;; 어떤 설치파일(?)이 친절하게도 버전이 안맞는 msvcr100.dll (Version 10.0.20327.1) 을 덮어쓰더니..

위와 같은 난감한 상황을 연출하더군요.


이런 상황을 시스템에 대해서 잘 모르는 유저들이 접할 경우...;;

덜컥 겁을 집어먹고는 최악의 경우, 포맷이라는 극단 조치까지 갈 우려가 있습니다..


직접 개발한 프로그램에 특정 공유 모듈이 필요한 경우는...

SYSTEM 폴더에 강제로 뿌리지 말고, 프로그램 설치 경로에 곱게 놓아두면 됩니다..

윈도우 시스템의 모듈 로딩 구조상 SYSTEM 폴더보다, 자기자신의 폴더가 우선순위가 높거든요...


아침부터 테스트하다가~ =_= 살짝 짜증이 나서 분노의 포스팅을 올려봤습니다..



반응형
AND

반응형

올리디버거 v2.0 새 버전에 플러그인이 등장한 걸 보고, 플러그인 SDK 풀리기만 기다렸는데...

곰곰히 생각을 해보니 지금 선공개된 "plugin.h" 파일만 있어도 플러그인 제작이 가능할 것 같았습니다.

호기심에 잽싸게 테스트를 해봤는데~ㅋ 역시 가능하더군요.


디버거 본체가 플러그인을 인식하기 위한 플러그인의 익스포트 함수들은~~

원래부터 유저가 구현을 해줘야되는 부분이었고...

중요한 건

올리디버거 본체가 지원을 해주는 플러그인용 함수들을 어떻게 사용하느냐...?

요건데... 의외로 간단하게 해결이 되네요~~^^;;;

OllyDbg.exe 파일은 친절하게도(?) 플러그인 만들때 필요한 함수들을 익스포트 해주고 있습니다..ㅋ

GetProcAddress() 신공으로... 필요한 함수만 구해와서 쓰면 되는거죠~~ :)

Visual C++ 에서 사용가능하도록 수정한 "plugin.h" 파일과...

가볍게 테스트한 플러그인 소스 코드를 같이 첨부해봅니다....ㅋ






ps... 샘플코드에선 변수만 가져왔는데... 함수들도 GetProcAddress 로 포인터 얻어와서 사용이 가능합니다~ :)


반응형
AND