ReverseEngineering 관련 자료 링크들.


the process of analyzing a subject system to identify the system's components and their interrelationships and create representations of the system in another form or at a higher level of abstraction. -- Chikofsky and Cross



강좌



Articles



Tools
Disassembler

  • IDA pro 4.5.0 Demo: 역공학을 하다보면 필수적인 툴이 몇몇있다. 그중에 가장 필수적인 것이 바로 디스어셈블러인데 IDA란 툴은 프로그래머에게 디스어셈블된 코드에 주소값을 인식한 후 주석을 달아주거나 프로시저를 호출할 때 스택에 쌓이는 파라미터도 보기 쉽게 정리해주는등 상당히 편리하고 유용한 툴. IDA는 강력하고 전문적인 툴이다. IDA Pro BBS에 가보면 IDA를 쓰는 유저들의 포럼도 있어 유용한 팁이나 도움글들을 볼 수 있다. 제작사:Datarescu IDA Pro
    - Plug-ins

    1. IDA pro advance plugins
    2. IDA to SoftIce converter/loader v0.03k (from http://mostek.subcultural.com )
    3. Strings, Imports and Exports plugIn v0.1f
  • W32Dasm8.93 : IDA와는 또다른, 디스어셈블러겸 디버거. 깔끔하고 심플한 인터페이스가 돋보이는 툴로서 가장 무난하게 사용할 수 있다.
    - Patches

    1. Win32Dasm8.93 - Patch v2.0 by Bratalarm : w32Dasm의 패치. 패치내용은 다음과 같다. (출처:http://kickme.to/wdasmpatch)
    2. W32Dasm 8.93 Patch3.0 by Bratalarm (출처: http://protools.cjb.net ) : 커서가 위치한 세그먼트의 16진수 덤프기능과 폰트설정 저장기능등 깔끔한 패치가 인상적이다.
    3. Win32Dasm8.93CZ by byME : w32Dasm의 다른 패치버전. 패치내용은 by.ME 참조
    4. W32Dsm v8.98 patch by Cold Coder : 패치의 소스까지 포함되어있다.
    5. How To CRACK W32dasm7 : 오리지널 w32Dasm에는 두 가지 제한사항이 있다. 하나는 한 세션당 작업명령횟수가 제한되어 있다는 것과 디스어셈블링된 리스팅을 저장할 수 없다는 것이다. 리버스엔지니어라면 이걸 가만두고 보지는 않겠지.
  • w32Dasm v10 by Killer`s Super Wdsm : w32dasm은 쓰면 쓸 수록 마음에 드는 툴이다.
  • PEDasm : PEDasm is a Win32 command line tool wich disassemble binary files targeted for win32 X86 platforms. It produces on output an asm source file that can in several case be successefully recompiled with an masm compatible assembler . This executable may be downloaded and used freeely. Full source included.
  • radASM : win32 assembly IDE for masm/tasm/fasm/nasm/goasm/hla


Hexa Editor

  • HexEdit : 리버스 엔지니이링할 때 빼놓을 수 없는 풀그림이 바로 헥사 에디터이다.
  • Hex Workshop : 위의 HexEdit보다는 조금 불편하다는 느낌이 든다. 기능은 대동소이하니 자기 입맛에 맛는걸 골라서 쓰면 된다.
  • WinHex : 파일뿐 아니라 메모리도 에디팅이 가능한 에디터. 보기엔 괜찮은 툴같아 보인다.
  • Hiew v6.85 : 외국애들의 crack 및 reverse 문서에 어김없이 등장하는 헥사 및 텍스트 에디터이다. 하도 이 에디터를 쓰는 문서가 많길래 대체 얼마나 대단한 툴인가 싶어 얼른 다운로드 받고 실행해보았다. Hacker's View라는 거창한 제목과는 달리 처음 실행화면을 본 순간, '헉~ 이 웬 고색창연한 dos화면이란 말인가'라는 충격(?)을 받았던 툴. 그러나 dos기반의 구지리한 실행화면과는 달리 에디터가 디스어셈블러 및 어셈블러 기능에 PE 포맷 분석기능, 어셈 커맨드 기반의 서칭 기능과 호출/분기문에 대한 원터치 점프 기능까지 포함하고 있는 그야말로 다기능 헥사 에디터로 '해커들의 연장'이라는 명성이 이해가 가는 툴이다. 그럼에도 full prompt 모드에서는 동작하지 않고 ansi 화면에서 일부 글자들이 깨져나오는 도스창은 여전히 생경한 인터페이스임에는 틀림없다.


Debugger

  • SoftIce4.05 NT : 리버스 엔지니어링에 관심있는 사람치고 설마 소아를 모르는 사람은 없겠지(시리얼:5109-0122df-ff)
    - Plug-ins

    1. IceDump 6.026 and nticedump1.14 : dumps memory from SICE Win9x/NT to a file (from IceDump HP)
    2. Iceload 0.18 : SoftICE helper to load PE DLLs and break on DllMain
  • OllyDbg109d : OllyDbg is a single-process, multi-thread code-level debugger for 32-bit programs running under Windows 95, Windows 98, Windows NT and Windows 2000. It allows you to debug and patch executable files in PE (Portable Executable) format. "Code-level" here means that you work directly with low-level bits, bytes and processor commands. OllyDbg uses only documented Win32 API calls, so the chances are good that you will be able to use it on the next derivatives of 32-bit Windows operating systems.

    1. OllyDump v2.21.108 plug-ins
    2. Ollydbg Users Forum에 가면 Ollydbg에 대한 더 많은 도큐먼트와 플러그인을 구할 수 있다. 참조할 것!
    3. OllyDbg stuph : Ollydbg plug-in 모음.
    4. OllyScripts : OllyDbg plug-in의 하나인 olly scripts1 가 개발되고 있는 사이트.

      olly가 v1.10c 버전이 발표되었다. http://home.t-online.de/home/ollydbg에서 확인하자.

  • SoftSnoop1.3 : 위의 SoftIceOllyDbg처럼 막강한 기능의 디버거는 아니지만 Debug용 API를 이용하여 간단히 디버깅 이벤트를 확인할 수 있는 유틸. 주어진 프로세스가 어떤 dll을 로딩하고 무슨 API를 콜했으며 그의 return value가 무엇인지 확인하는, 일종의 API Spy용도로 쓰면 되겠다.
    - 소스는
    API Hooking 페이지로...


Unpacker/Decrytor

  • pdump32 : PE header unpacker. WWPack32를 unpacking하는데 사용했다. Unpack설정한 후에 WWPACK32를 지정하고 UseConf지정하고 풀파일을 지정해서 풀고고 저장하면 된다.
  • Daspr : 이건 문서가 없어서 어셈 소스를 분석해봐야 한다. 이궁~ 문서좀 만들지...
  • Quck Unpack v0.4 : The program is for the really quick unpacking of the easy packers (UPX, AsPack, PE Diminisher, PE-PACK, FSG, etc). Has the small size and is pretty fast.


Etc

  • convertDLL by alpine : A DLL which converts Soft Ice addresses to disassembly addresses with source code. An example program can be found Here (Windows 95/98/NT)
  • EXE dumper : For all you tutorial writers out there! ExeDumper converts exe's to Ascii and hex representation for easy inclusion into your essays
  • stud PE Analyzer
  • LordPE : LordPE is a tool e.g. for system programmers which is able to edit/view many parts of PE (Portable Executable) files, dump them from memory, optimize them, validate, analyze, edit...(from Yoda2K)

    1. LordPE Deluxe b - micro update
    2. CoolDump v1.7(Plug-in) : File dumper with generic OEP searching feature
  • PE iDentifier v0.92 : 리버싱 작업에 들어가기 전에 압축실행파일인지, 어떤 언어로 컴파일 되었는지등 타깃 프로그램에 대한 스캐닝은 필수다. PEiD detects most common packers, cryptors and compilers for PE files. It can currently detect more than 430 different signatures in PE files.
  • pe-scan v3.31 : 2002년에 더이상의 업데이트가 중지된 pe 스캐너. 그러나 가장 많은 프로텍션을 인식하는 것으로 알려져 있다.
  • import Reconstructor 1.6 Final : ImpREC 참조
  • PE Tools : This is a fully-functional utility for working with PE/PE +(64bit) files. Including: Editor PE of files, Task Viewer, Win32 PE files optimizer, detector of compiler/packer and many other things.
  • PEditor v1.7 : 위의 PE Tools와 유사한 PE 포맷 에디터. (출처:http://scifi.pages.at/yoda9k/proggies.htm )
  • CodeFusion Wizard v3.0 : CodeFusion Wizard is an advanced Patch Generator for Windows 9x/NT. With CodeFusion you can Compare two files for compare info(in Streaming Blocks!), simply byte-patch at a particular offset, find & replace strings (Pattern "??" bytes also supported)
  • PEPass : PE file에 암호를 거는 프로그램. 소스코드 첨부 (출처: http://protools.cjb.net)
  • opgen v1.0 by NeuRaL_NoiSE : 호출 및 분기문에 대한 opcode generator. exe파일에서 imported function call의 opcode를 알아낼 수 있다.
  • IIDKing v1.0 by SantMat : PE import table에 import를 삽입시켜주는 툴
  • Resource_Hacker3.4 : exe 실행 파일에서 리소스만 추출해서 변경할 수 있는 툴. VC++6.0이 설치되어 있다면 exe에서 리소스 수정하기가 가능하지만 자신의 컴퓨터에 VC++6.0이 설치되어 있지 않다면 이 툴을 쓰면 된다.


참조사이트

Reverse Engineering 참조 사이트

Reference Book


1931769222

1st edition이라서 그런지 오자가 눈에 많이 띈다. 글에 오자가 있는 것은 그렇다치지만 코드덤프에까지 오자가 있으면 그거참... 게다가 예제로 등장하는 많은 프로그램을 cd같은 미디어에 담아주었으면 실제로 자신이 디스어셈블링하면서 따라갈 수 있으므로 이해하기 쉬울텐데 책만 읽으며 이해하기에는 어려움이 많다. 아마존의 책정보란이나 책 어디에도 cd가 포함되어 있다는 말이 없는데 책내용을 보면 마치 cd에서 찾아서 디스어셈블링해보라는 식으로 설명한 부분이 몇군데 있다. 이것도 오자인가?


1593270291

특정 제품product를 리버싱하는 것을 소개하는 책이 출간되다니... 역시 미국은 참 재미있는 나라다. xbox를 하드웨어, 소프트웨어적으로 리버스 엔지니어링하는 것을 흥미롭게 설명하고 있는 모양이다. 사서 보고싶긴 한데, 자금이 없구나.



1886411794

anti-debugging, anti-disassembling등을 다룬 서적. 리버서라도 software protection에 관한 서적쯤은 읽어봐야 하지 않을까.

이 책은 현재 알라딘에서 3만9천원에 판매되고 있다. 교보문고에 문의하면 출판사에 재고가 남아있어서 4만원 내외로 구입할 수 있다. 만약 구입하고 싶은 사람이 있다면 지금 구매해야할 것이다.
 


0201786958

  • Why software exploit will continue to be a serious problem
  • When network security mechanisms do not work
  • Attack patterns
  • Reverse engineering
  • Classic attacks against server software
  • Surprising attacks against client software
  • Techniques for crafting malicious input
  • The technical details of buffer overflows
  • Rootkits

Exploiting Software is filled with the tools, concepts, and knowledge necessary to break software

____
  1 olly scripts는 올리의 plug-in의 하나로 script 파일을 읽어서 실행하는 플러그 인이다. unpack에도 유용하게 사용된다. 사용 방법은 OllyScript.dll 파일을 올리폴더 밑에 plugins에 복사한다. script 파일은 아무곳에 있어도 상관없다. olly를 실행해서 언팩할 실행파일을 로딩한다. 그리고 메뉴의 Plugins 에 보면 `OllyScript` 라는 메뉴가 보일 것이다. 그옆 메뉴에 Run script... 메뉴가 있는데 그걸 클릭하고 script 파일을 선택한다. 그럼 자동으로 OEP 주소를 찾을 것이다. 그다음에 올리 메뉴의 Plugins 메뉴에 보면 OllyDump 라는 메뉴가 있없다면 OllyDump.dll 파일을 Plugins 폴더에 복사한다. OllyDump 메뉴옆에 Dump debugged process 를 클릭해서 덤프파일을 만들어 준다. 올리 메인화면에서 마우스오른쪽 버튼 눌러도 Dump debugged process 메뉴가 보인다. dll 파일들은 http://ollydbg.has.it 에 최신버전으로 모두 올라와 있다.