摘要:iOS程式分析工具
反汇编文件
mato-iPhone:~ root# otool -tV hello -p _main hello: (__TEXT,__text) section _main: 00002fb4 e92d4080 stmdb sp!, {r7, lr} 00002fb8 e1a0700d mov r7, sp 00002fbc e24dd008 sub sp, sp, #8 ; 0x8 00002fc0 e59f0018 ldr r0, [pc, #24] ; 0x2fe0 00002fc4 e08f0000 add r0, pc, r0 00002fc8 eb000005 bl 0x2fe4 ; symbol stub for: _puts 00002fcc e58d0000 str r0, [sp] 00002fd0 e59d0004 ldr r0, [sp, #4] 00002fd4 e1a0d007 mov sp, r7 00002fd8 e8bd4080 ldmia sp!, {r7, lr} 00002fdc e12fff1e bx lr 00002fe0 00000024 andeq r0, r0, r4, lsr #32 |
查看dylib依赖
mato-iPhone:~ root# otool -L hello hello: /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 7.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 173.8.0) |
符号表dump
iMAC:Developer$ nm -arch arm hello 0000302c S _NXArgc 00003030 S _NXArgv 00003038 S ___progname 00002fa8 t __dyld_func_lookup 00001000 A __mh_execute_header 00003034 S _environ U _exit 00002fb4 T _main U _puts 00003028 d dyld__mach_header 00002f88 t dyld_stub_binding_helper 00002f3c T start |
U代表undefined。T代表二进制代码段。D表示数据段,B则是为初始化的保存在BSS段中的数据。A表示关联符号,初始化时被添入值。
S表示保存对象的未初始化数据,G则是已经初始化的数据。C表示公用符,一般是未初始化全局变量。I表示直接引用其他符号。
N表示调试符号。R表示只读数据。V和W代表若类型。
搜索字符串
iMAC:Developer$ strings hello Hello world! |
------------------------------
文章的授權使用CC BY-ND2.5協議。凡是標示“轉載”的文章,均來源於網絡並儘可能標註作者。如果有侵犯您的權益,請及時聯繫刪除或者署名、授權。
Gtalk/Email: cmd4shell [at] gmail.com