Sam Marshall总结的逆向工程学习资源

原帖:http://samdmarshall.com/re.html
作者:Sam Marshall

Reverse Engineering Resources

Debugging
These are very important guides for understanding the debugging process and how applications work.
Mac OS X Debugging Magic Technical Note (TN2124) (link)
iOS Debugging Magic Technical Note (TN2239) (link)
Understanding and Analyzing iOS Application Crash Reports (TN2151) (link)
Malloc Debug Environment Variables (link)

Mach-O Binaries
Mac OS X and iOS use Mach-O file format for executable binaries and shared libraries. It supports multiple architectures in one binary file (Universal or fat binaries).
Mach-O Wikipedia (link)
OS X ABI Mach-O File Format Reference (link - PDF)
Mach-O Programming Topics (link - PDF)

Analysis
Guides and introductory material to binary analysis.

Analyzing Binaries with Hopper (link)

System ABIs
Calling conventions define how functions and subroutines receive the parameters passed to them from the calling function.

ABI Wikipedia (link)
Calling Conventions Wikipedia (link)
Mac OS X ABI (link - PDF)
iOS ABI (link - PDF)
Dynamic Library Programming Topics (link - PDF) (Companion File)
OS X ABI Dynamic Loader Reference (link - PDF)

Language Resources
Language specific knowledge is often required to understand what is going on behind the scenes.

Intel x86 Architecture (PDF)
Introduction to x64 Assembly (PDF)
ARM Architecture for ARMv7 (link)
OS X Assembler Reference (link - PDF)
Learn C The Hard Way (link)
The C Library Reference Guide (link)
Objective-C Language (link - PDF)
Objective-C Runtime (link - PDF)

Further Reading
Collection of blogs and reading resources that give deep insight into how many aspects of languages and system functionality.

NSBlog (link)
Reverse Engineering Mac OS X (link)
Landon’s Blog (link)
OS X Internals (link)
Greg Parker’s Blog (link)
Ridiculous Fish (link)
Snare’s Blog (link)
To The Apple’s Core (link)
The Objective-C Runtime: Understanding and Abusing (link)

Tools
Mach-O Binary Analyzers:

MachOViewer (Homepage)

Hex Editors:
Hex Fiend (Homepage)
0xED (Homepage)
Synalyze It! (Homepage)

Disassemblers:
Hopper (Homepage)
IDA (Homepage)
otool (man page)
otx (Homepage)

Decompilers:
Hopper (Homepage)
Hex-Rays (Homepage)
classdump (Homepage)
codedump (i386) (Source ZIP)

Debuggers:

GDB (Not shipped on OS X anymore) (Homepage)
LLDB (Homepage)
PonyDebugger (link)

Memory Editors:[list]
Bit Slicer (Homepage - Source)

Various Command Line Tools:[list]
nm
strings
dsymutil
install_name_tool
ld
lipo
codesign
hexdump
dyld_shared_cache
vbindiff
binwalk
xpwntool
objdump

Useful Source Repositories:
Apple Source Code (link)
PLCrashReporter (link)
Mike Ash’s Github (link)
Landon Fuller’s Github (link)
Jonathan Rentzsch’s Github (link)
fG!'s Github (link)
openjailbreak (link)

8 个赞

找个懂编程,有空闲时间的人,组织个翻译群,来翻译这些资料,是不是比较好? 翻译的贡献先不说,也是积累人脉,提升名气的一种手段嘛!

:smile::smile::smile::smile:

感谢lz 分享

打算搞一搞,准备操作系统课上做一个分享

好东西啊