본문 바로가기
리버싱

x32 themida binary debugging in x64 machine

by dladbru 2016. 2. 26.

오랜만의 포스팅이네요. 죄송합니다. 초심을 빠르게 잃었네요 ㅋㅋㅋ... 쓸 것도 적기도 했지만요! 오늘은 디버깅 팁에 관하여 작성하고자 합니다.내 기준에서 리버싱은 XP 환경에서 OllyDBG를 통해 분석하는 편이었다.

StrongOD 툴이 강력하여 더미다를 디버깅할 수 있는점도 있었고 간편한 UI를 제공하기 때문에 몇년간 그랬다.Vista, Win7 까지만해도 ASLR(모듈 메모리 랜덤주소 적재) 정도만 유의하면 됬으므로 문제가 없었다.(여기서 비스타를 3년이상 썻다고하면 놀라는 사람이 많다) 하지만 근래에 구입하는 컴퓨터는 시대가 달라져 x32 의 운영체제가 탑재되어 있는 컴퓨터는 나오지도 않는다. 64bit에서는 OllyDBG는 잘 작동하지 않았고, WIn10의 64bit 환경이라도 다행히 x64_DBG(32,64)또는 IDA를 통해 분석이 가능했다.  IDA와 x64_DBG로 디버깅하는법과 차이를 포스팅하는 주제로 잡았다.


<Figure 0. IDA 플러그인>


IDA는 정적,동적,플러그인,차트,검색 안되는것 없는 리버싱을 하는사람에게는 필수와 같은 프로그램이라고 생각한다. 다만 높은 가격으로 인해 국내에 정품 유저가 많다고 보이지는 않는다 ㅠㅠ.. 이 중에 포스팅에는 라이브 디버깅을 소개하고자하고 ida를 숨겨줄 수 있는 IDAStelth 플러그인을 다루어 보았다.


<Figure 1. IDAStelth 설정 화면1>



<Figure 2.  IDAStelth 설정 화면2>


요즘 패커프로그램들은 안티디버깅 기능을 내재하고 있어 분석을 할때 필수가 안티안티디버깅 플러그인이라고 생각한다. 하지만 IDAStelth로 디버깅을 해본결과 디버깅은 가능하지만 안티디버깅의 기능은 StrongOD 보다 못했다. 하지만 64bit OS에서 32bit 바이너리를 정적분석에 그치지않고 디버깅 할 수 있다는것은 매우 큰 메리트이므로 앞으로도 많이 쓸것같다.  ( 내가 한 방법이 틀렸을 수도 있다. 만약 가능하다면 댓글로 저에게 가르침을 주세요!) 


<Figure 3. x64_DBG>


x64_DBG는 오픈 소스로 계속 업데이트 해 나가고있는 디버거로 빠르게 발전해 나가고있는것 같다. 이것의 장점이라면 x64 machine 환경에서 32,64바이너리 모두 디버깅이 가능하다는 점이였다. 윈10에서도 부드럽게 사용가능했고 Ollydbg에 익숙해져있음에도 UI와 동작구조가 거의 같아 문제없이 사용 가능했다.

앞으로 32bit를 주 환경으로 쓰진 않을테니 점차적으로 제일 많이쓸것같은 디버거라고 생각한다. 몇년전에는  플러그인이 부족했으나 StrongOD에 밀리지 않을것같은 플러그인이 홈페이지에서 제공중이었다.


<Figure 4. x64_DBG Plugin>


많은 플러그인들이 보이며 TitanHide같은 경우는 내가 찾는 플러그인 인것 같다. 해당 플러그인을 다운로드 해서 확인해보니 exe+sys로 되어있다. (윈10 x64)의 경우에는 특정한 설정을 하지않는 이상 정식 코드 사인이 된 드라이버가 아니면 절대 올라가지 않는다. ㅠㅠ  윈7에서 디버깅하거나 윈10의 설정을 풀어야 할것 같다. 설정을 푸는것만으로도 가능한것에 x64_DBG에 고맙다. XP의 세대가 지난 지금 새로이 다가오는 디버깅 환경을 확립하고자 이 포스팅을 작성했다.


으로도 이부분에 관해서는 몇번 더 언급을 해야 할것같다. (만약 제가 작성한글에 문제가있고 새로운 방법이 존재한다면 알려주시면 고맙겠습니다 :)   )


x64_DBG 홈페이지



반응형

댓글