我正在尝试反转 OSX mach-o 二进制文件,
反汇编给了我一个废话,似乎它是用一些打包程序加密的。
我需要确定加密算法,并解密二进制文件。
加载命令
这是otool -l calculator
输出,
(似乎没有任何加密信息......但它是加密的)
加载命令 0 cmd LC_SEGMENT_64 cmdsize 72 段名 __PAGEZERO vmaddr 0x0000000000000000 虚拟机大小 0x0000000100000000 归档 0 文件大小 0 最大保护 0x00000000 初始化保护 0x00000000 昆虫 0 标志 0x0 加载命令 1 cmd LC_SEGMENT_64 cmdsize 1032 段名 __TEXT vmaddr 0x0000000100000000 虚拟机大小 0x000000000032f000 归档 0 文件大小 3338240 最大保护 0x00000007 初始化保护 0x00000007 昆虫 12 标志 0x0 部分 教派名称 __text 段名 __TEXT 地址 0x0000000100001760 大小 0x000000000028f4bc 偏移 5984 对齐 2^4 (16) 重新关闭 0 0 标志 0x80000400 保留 1 0 保留 2 0 部分 宗派名称 __stubs 段名 __TEXT 地址 0x0000000100290c1c 大小 0x0000000000000762 偏移量 2690076 对齐 2^1 (2) 重新关闭 0 0 标志 0x80000408 reserved1 0(间接符号表的索引) reserved2 6(存根的大小) 部分 宗派名称 __stub_helper 段名 __TEXT 地址 0x0000000100291380 大小 0x0000000000000c5e 偏移量 2691968 对齐 2^2 (4) 重新关闭 0 0 标志 0x80000400 保留 1 0 保留 2 0 部分 sectname __objc_methname 段名 __TEXT 地址 0x0000000100291fde 大小 0x0000000000015697 偏移量 2695134 对齐 2^0 (1) 重新关闭 0 0 标志 0x00000002 保留 1 0 保留 2 0 部分 sectname __cstring 段名 __TEXT 地址 0x00000001002a7680 大小 0x0000000000023fdc 偏移量 2782848 对齐 2^4 (16) 重新关闭 0 0 标志 0x00000002 保留 1 0 保留 2 0 部分 宗派名称 __const 段名 __TEXT 地址 0x00000001002cb660 大小 0x0000000000006b50 偏移量 2930272 对齐 2^4 (16) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 sectname __ustring 段名 __TEXT 地址 0x00000001002d21b0 大小 0x00000000000007de 偏移量 2957744 对齐 2^1 (2) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 sectname __objc_classname 段名 __TEXT 地址 0x00000001002d298e 大小 0x0000000000000b42 偏移量 2959758 对齐 2^0 (1) 重新关闭 0 0 标志 0x00000002 保留 1 0 保留 2 0 部分 sectname __objc_methtype 段名 __TEXT 地址 0x00000001002d34d0 大小 0x00000000000069c4 偏移量 2962640 对齐 2^0 (1) 重新关闭 0 0 标志 0x00000002 保留 1 0 保留 2 0 部分 sectname __gcc_except_tab 段名 __TEXT 地址 0x00000001002d9e94 大小 0x0000000000007b48 偏移量 2989716 对齐 2^2 (4) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 宗派名称 __unwind_info 段名 __TEXT 地址 0x00000001002e19dc 大小 0x0000000000002814 偏移量 3021276 对齐 2^0 (1) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 宗派名称 __eh_frame 段名 __TEXT 地址 0x00000001002e41f0 大小 0x000000000004ae08 偏移量 3031536 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 加载命令 2 cmd LC_SEGMENT_64 cmdsize 1832 段名 __DATA vmaddr 0x000000010032f000 虚拟机大小 0x0000000000160000 归档 3338240 文件大小 1396736 最大保护 0x00000007 初始化保护 0x00000003 昆虫 22 标志 0x0 部分 sectname __program_vars 段名 __DATA 地址 0x000000010032f000 大小 0x0000000000000028 偏移量 3338240 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 宗派名称 __nl_symbol_ptr 段名 __DATA 地址 0x000000010032f028 大小 0x0000000000000010 偏移量 3338280 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000006 reserved1 315(间接符号表的索引) 保留 2 0 部分 教派名称 __got 段名 __DATA 地址 0x000000010032f038 大小 0x0000000000000218 偏移量 3338296 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000006 reserved1 317(间接符号表的索引) 保留 2 0 部分 宗派名称 __la_symbol_ptr 段名 __DATA 地址 0x000000010032f250 大小 0x00000000000009d8 偏移量 3338832 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000007 reserved1 384(间接符号表的索引) 保留 2 0 部分 sectname __pointers 段名 __DATA 地址 0x000000010032fc28 大小 0x0000000000000008 偏移量 3341352 对齐 2^0 (1) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 宗派名称 __const 段名 __DATA 地址 0x000000010032fc30 大小 0x00000000000051d0 偏移量 3341360 对齐 2^4 (16) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 sectname __objc_classlist 段名 __DATA 地址 0x0000000100334e00 大小 0x00000000000002f8 偏移量 3362304 对齐 2^3 (8) 重新关闭 0 0 标志 0x10000000 保留 1 0 保留 2 0 部分 sectname __objc_nlclslist 段名 __DATA 地址 0x00000001003350f8 大小 0x0000000000000008 偏移量 3363064 对齐 2^3 (8) 重新关闭 0 0 标志 0x10000000 保留 1 0 保留 2 0 部分 sectname __objc_catlist 段名 __DATA 地址 0x0000000100335100 大小 0x0000000000000048 偏移量 3363072 对齐 2^3 (8) 重新关闭 0 0 标志 0x10000000 保留 1 0 保留 2 0 部分 sectname __objc_protolist 段名 __DATA 地址 0x0000000100335148 大小 0x0000000000000158 偏移量 3363144 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 sectname __objc_imageinfo 段名 __DATA 地址 0x00000001003352a0 大小 0x0000000000000008 偏移量 3363488 对齐 2^2 (4) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 教派名称 __objc_const 段名 __DATA 地址 0x00000001003352a8 大小 0x000000000002c718 偏移量 3363496 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 sectname __objc_selrefs 段名 __DATA 地址 0x00000001003619c0 大小 0x0000000000004c70 偏移量 3545536 对齐 2^3 (8) 重新关闭 0 0 标志 0x10000005 保留 1 0 保留 2 0 部分 sectname __objc_protorefs 段名 __DATA 地址 0x0000000100366630 大小 0x0000000000000028 偏移 3565104 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 sectname __objc_classrefs 段名 __DATA 地址 0x0000000100366658 大小 0x0000000000000530 偏移量 3565144 对齐 2^3 (8) 重新关闭 0 0 标志 0x10000000 保留 1 0 保留 2 0 部分 sectname __objc_superrefs 段名 __DATA 地址 0x0000000100366b88 大小 0x0000000000000218 偏移量 3566472 对齐 2^3 (8) 重新关闭 0 0 标志 0x10000000 保留 1 0 保留 2 0 部分 sectname __objc_data 段名 __DATA 地址 0x0000000100366da0 大小 0x0000000000001e00 偏移 3567008 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 sectname __objc_ivar 段名 __DATA 地址 0x0000000100368ba0 大小 0x0000000000001888 偏移量 3574688 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 sectname __cfstring 段名 __DATA 地址 0x000000010036a428 大小 0x000000000000ff60 偏移 3580968 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 宗派名称 __data 段名 __DATA 地址 0x000000010037a390 大小 0x0000000000109c38 偏移量 3646352 对齐 2^4 (16) 重新关闭 0 0 标志 0x00000000 保留 1 0 保留 2 0 部分 宗派名称 __bss 段名 __DATA 地址 0x0000000100483fd0 大小 0x000000000000a898 偏移量 0 对齐 2^4 (16) 重新关闭 0 0 标志 0x00000001 保留 1 0 保留 2 0 部分 宗派名称 __common 段名 __DATA 地址 0x000000010048e868 大小 0x00000000000004a8 偏移量 0 对齐 2^3 (8) 重新关闭 0 0 标志 0x00000001 保留 1 0 保留 2 0 加载命令 3 cmd LC_SEGMENT_64 cmdsize 72 段名 __LINKEDIT vmaddr 0x000000010048f000 虚拟机大小 0x000000000001b000 归档 4734976 文件大小 108304 最大保护 0x00000007 初始化保护 0x00000001 昆虫 0 标志 0x0 加载命令 4 cmd LC_DYLD_INFO_ONLY cmdsize 48 rebase_off 4734976 rebase_size 10256 绑定关闭 4745232 绑定大小 6696 弱绑定关闭 4751928 弱绑定大小 40 懒惰绑定关闭 4751968 懒惰绑定大小 8056 export_off 4760024 出口尺寸 28752 加载命令 5 cmd LC_SYMTAB cmdsize 24 symoff 4788776 第 492 章 斯特罗夫 4799444 字符串大小 10680 加载命令 6 cmd LC_DYSYMTAB cmdsize 80 本地符号 0 本地符号 1 iextdefsym 1 下一个定义符号 1 未定义符号 2 第 490 章 0 0 模型 0 nmodtab 0 extrefsymoff 0 下一个参考符号 0 间接符号 4796648 第 699 章 外挂 0 下一个 0 洛瑞洛夫 0 氯雷他定 0 加载命令 7 cmd LC_LOAD_DYLINKER cmdsize 32 名称 /usr/lib/dyld(偏移 12) 加载命令 8 cmd LC_UUID cmdsize 24 uuid 1AF510C1-9C81-3DCA-9ADE-2B00ED53EF5F 加载命令 9 cmd LC_VERSION_MIN_MACOSX cmdsize 16 版本 10.7 软件开发工具包 10.9 加载命令 10 cmd LC_UNIXTHREAD cmdsize 184 风味 x86_THREAD_STATE64 计数 x86_THREAD_STATE64_COUNT rax 0x0000000000000000 rbx 0x0000000000000000 rcx 0x0000000000000000 rdx 0x0000000000000000 rdi 0x0000000000000000 rsi 0x0000000000000000 rbp 0x0000000000000000 rsp 0x0000000000000000 r8 0x0000000000000000 r9 0x000000000000000 r10 0x0000000000000000 r11 0x000000000000000 r12 0x000000000000000 r13 0x0000000000000000 r14 0x0000000000000000 r15 0x0000000000000000 rip 0x0000000100001760 rflags 0x0000000000000000 cs 0x0000000000000000 fs 0x0000000000000000 gs 0x0000000000000000 加载命令 11 cmd LC_LOAD_DYLIB cmdsize 88 名称@loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle(偏移24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 1.5.0 兼容版本 1.5.0 加载命令 12 cmd LC_LOAD_DYLIB cmdsize 56 名称@rpath/libLLVM-3.4.dylib(偏移24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 0.0.0 兼容版本 0.0.0 加载命令 13 cmd LC_LOAD_DYLIB cmdsize 56 名称 /usr/lib/libexpat.1.dylib(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 7.2.0 兼容性版本 7.0.0 加载命令 14 cmd LC_LOAD_DYLIB cmdsize 88 名称 /System/Library/Frameworks/Python.framework/Versions/2.7/Python (offset 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 2.7.5 兼容版本 2.7.0 加载命令 15 cmd LC_LOAD_DYLIB cmdsize 56 名称 /usr/lib/libncurses.5.4.dylib(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 5.4.0 兼容版本 5.4.0 加载命令 16 cmd LC_LOAD_DYLIB cmdsize 56 名称 /usr/lib/libSystem.B.dylib(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 1197.1.1 兼容版本 1.0.0 加载命令 17 cmd LC_LOAD_DYLIB cmdsize 56 名称 /usr/lib/libcrypto.0.9.8.dylib(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 50.0.0 兼容版本 0.9.8 加载命令 18 cmd LC_LOAD_DYLIB cmdsize 48 名称 /usr/lib/libc++.1.dylib(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 120.0.0 兼容版本 1.0.0 加载命令 19 cmd LC_LOAD_DYLIB cmdsize 48 名称 /usr/lib/libz.1.dylib(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 1.2.5 兼容版本 1.0.0 加载命令 20 cmd LC_LOAD_DYLIB cmdsize 96 名称 /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (offset 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 1.8.0 兼容版本 1.2.0 加载命令 21 cmd LC_LOAD_DYLIB cmdsize 88 名称 /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 275.0.0 兼容版本 1.0.0 加载命令 22 cmd LC_LOAD_DYLIB cmdsize 88 名称 /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (offset 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 20.0.0 兼容版本 1.0.0 加载命令 23 cmd LC_LOAD_DYLIB cmdsize 96 名称 /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 1056.13.0 兼容版本 300.0.0 加载命令 24 cmd LC_LOAD_DYLIB cmdsize 56 名称 /usr/lib/libobjc.A.dylib(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 228.0.0 兼容版本 1.0.0 加载指令 25 cmd LC_LOAD_DYLIB cmdsize 88 名称 /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 1265.19.0 兼容版本 45.0.0 加载指令 26 cmd LC_LOAD_DYLIB 命令行大小 112 名称 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 48.0.0 兼容版本 1.0.0 加载命令 27 cmd LC_LOAD_DYLIB 命令行大小 104 名称 /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 59.0.0 兼容版本 1.0.0 加载指令 28 cmd LC_LOAD_DYLIB 命令行大小 104 名称 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation(偏移 24) 时间戳 2 Thu Jan 1 04:00:02 1970 当前版本 855.14.0 兼容版本 150.0.0 加载命令 29 cmd LC_RPATH cmdsize 48 路径@executable_path/../Frameworks(偏移12) 加载命令 30 cmd LC_DATA_IN_CODE cmdsize 16 数据关闭 4788776 数据大小 0 加载命令 31 cmd LC_CODE_SIGNATURE cmdsize 16 数据关闭 4810128 数据大小 33152
分解
这是otool -tvV calculator
输出块
0000000100001760 拉夫 0000000100001761 popq %rcx 0000000100001763 rolb $0xe2,0xc3c024ac(%rax) 000000010000176a jne 0x1000016ef 000000010000176c .byte 0x06 #坏操作码 000000010000176d sbbb %al,0x5b(%rsi) 0000000100001770 jle 0x10000178f 0000000100001772 xorl %edi,0x30659afe(%rsi) 0000000100001778 fldenvq 0xc9e9c0e1(%r14) 000000010000177f xorl %esp,%esp 0000000100001781 xchgl %esp,%eax 0000000100001782 xchgl %esi,%eax 0000000100001783 等待/jrcxz 0x1000017ed 0000000100001786 stosl %eax,(%edi) 0000000100001787 xchgl %edi,%eax 0000000100001788 jbe 0x100001727 000000010000178a stc 000000010000178b jns 0x100001748 000000010000178d xorl %ecx,0x13(%rbx,%rbx,8) 0000000100001791 popq %rax 0000000100001793 sbbl $0xe9507796,%eax 0000000100001798 popq %rbx 0000000100001799 incb (%rbx) 000000010000179b js 0x100001778 000000010000179e addb %ch,%bh 00000001000017a0 testl 0xe4(%rcx),%ebp 00000001000017a3 imull $0xfe,0xf6(%rcx),%esp 00000001000017a7 clc 00000001000017a8 imull $0x85bb1b76,0x65(%rdx),%ebp 00000001000017af cld 00000001000017b0 testb 0xc9(%rax),%cl 00000001000017b3 循环 0x10000175d 00000001000017b5 和b %ah,0x4c79a1ae(%rax) 00000001000017bb orl 0x90da6a05(%rbp,%rdx),%esi 00000001000017c2 sbbb %ch,%ch 00000001000017c4 jrcxz 0x100001780 00000001000017c6 xorb $0x6c,%al 00000001000017c8 jne 0x1000017b9 00000001000017ca orb %cl,0x13(%rcx,%rsi) 00000001000017ce ficompl 0x7d4a8745(%rbp) 00000001000017d4 .byte 0x07 #坏操作码 00000001000017d5 mov %?6,(%rax) 00000001000017d7 insl 00000001000017d8 .byte 0xd4 #坏操作码 00000001000017d9 movb %dl,%al 00000001000017db .byte 0xdd, 0x2f #bad opcode 00000001000017dd lcall $0x76f5,$0xedc7f289 00000001000017e4 subb $0xd3,%al 00000001000017e6 仔细考虑 0xa4(%rsi) 00000001000017e9 popf 00000001000017ea inl $0xf4,%eax 00000001000017ec adcl $0x413fe92b,(%rdi) 00000001000017f2 sarl $0x12,0xf5(%rcx) 00000001000017f6 addb %dh,0xec(%rbx,%rcx) 00000001000017fa movabsb 0x63ea27230d2c31f2,%r8d 0000000100001804 movl $0x12d794f0,%ecx 0000000100001809 subb $0x20,%al 000000010000180c shll %esi 000000010000180e repz/falc 0000000100001810 movb $0xd9,%dh 0000000100001812 outl %eax,%dx 0000000100001813 循环 0x1000017ab 0000000100001815 movl $0x781ecd57,%edi 000000010000181b pushq %rdi 000000010000181c addb $0x7e,%ah 000000010000181f inl $0x40,%eax 0000000100001821 acl $0xd480505a,%eax 0000000100001826 cmpl $0x28a6762d,%eax 000000010000182b ljmpl *0x36(%rdx,%rbx) 000000010000182f .byte 0xce #坏操作码 0000000100001830 xchgl %edx,%eax 0000000100001831 movabsl %eax,0x6d3cb9568b4b88a5 000000010000183a subl 0xa8d980d9(%rbx,%rdi,8),%eax 0000000100001841 popq %rdi 0000000100001842 pushq $0x4c 0000000100001844 subb $0x97,%al 0000000100001846 .byte 0x43, 0x82, 0x25 #bad opcode 0000000100001849 adcb %ah,%ah 000000010000184b testb 0x3141d9d1(%rbx),%ah 0000000100001851 sbbl $0xc405e320,%eax 0000000100001856 xchgl %ecx,%eax 0000000100001857 paddb %mm2,%mm1 000000010000185a xorl %edi,%edi 000000010000185c clc 000000010000185d jmp 0x100001885 000000010000185f xchgl %esi,%eax 0000000100001860 等待/jae 0x1000018a8 0000000100001863 lret 0000000100001864 jb 0x1000018ae 0000000100001866 fisubrs (%rsi) 0000000100001869 lodsb (%esi),%al 000000010000186a pushq %rsp 000000010000186b .byte 0x27 #坏操作码 000000010000186c lret 000000010000186d cmpl %eax,(%rdx) 000000010000186f orb $0xa2,%al 0000000100001871 movl $0xb2bf2631,%ebp 0000000100001876 sti 0000000100001877 movl 0x87b0df80(%rsp,%rcx,8),%ecx 000000010000187e hlt 000000010000187f inb $0x42,%al 0000000100001881 和 %esi,%ebx 0000000100001883 adcl %eax,0xa587d6ff(%rsi) 0000000100001889 movsll %ch,%esp 000000010000188b clc 000000010000188c xchgl %ecx,%eax 000000010000188d sbbb $0x82,%al 000000010000188f cwtl 0000000100001890 movl $0x673e9a73,%ebx 0000000100001895 movb $0x18,%bl 0000000100001899 leal 0x87(%rax),%edi 000000010000189c .byte 0x37 #bad opcode 000000010000189d jns 0x10000187a 000000010000189f .byte 0x06 #坏操作码 00000001000018a0 rolb $0x44,(%rsp,%rax,4) 00000001000018a4 movsll %cl,%edx 00000001000018a6 fiaddl 0xf4061e00(%rip) 00000001000018ac jo 0x100001838 00000001000018ae stosl %eax,(%edi) 00000001000018af adcb 0xac1ff7e3(%rcx),%dl 00000001000018b5 testl $0x51d2321e,%eax 00000001000018ba movl $0x10cb41ba,%ebp 00000001000018bf shrb 0xa724e9d8(%rdx) 00000001000018c5 fcompl 0x31(%rbp) 00000001000018c8 xorb (%rdi,%rdx,4),%ch 00000001000018cb leal %eax,%eax 00000001000018cd addb %dh,%ah 00000001000018cf movsl (%esi),(%edi) 00000001000018d0 addb 0x64cc6bfb(%rcx),%bh 00000001000018d6 testl 0xb4f698f5(%r10),%esi 00000001000018dd mov %esp,%?6 00000001000018df pushf 00000001000018e0 popq %rsi 00000001000018e1 jmp 0x83f231a4 00000001000018e6 .byte 0xd3, 0xf3 #坏操作码 00000001000018e8 orl %ebp,0xf1(%rdx) 00000001000018eb movl $0xf2f3e10c,0x35(%rdi,%rbx) 00000001000018f3 xchgl %esi,%eax 00000001000018f4 sbbb %r11d,%esp 00000001000018f7 movl $0x30412d40,%eax 00000001000018fc insl 00000001000018ff popq %rsi 0000000100001900 萨夫 0000000100001901 popq %rax 0000000100001902 jrcxz 0x10000197c 0000000100001904 和l 0x758d6d0d(%rsi),%ecx 000000010000190a movb $0x89,%ch 000000010000190c fistpq 0xa5(%rsi) 000000010000190f .byte 0x62 #坏操作码 0000000100001910 萨夫 0000000100001911 循环 0x10000193b 0000000100001913 jg 0x100001908 0000000100001915 cmpsl (%esi),(%edi) 0000000100001916 movsl (%esi),(%edi) 0000000100001917 愤怒 0000000100001918 scasl %eax,(%edi) 0000000100001919 .byte 0x0e #坏操作码 000000010000191a xorb %cl,(%rcx) 000000010000191c stosb %al,(%edi) 000000010000191d andb $0x9b,%al 000000010000191f cmpl $0x72a850c7,0xbdced867(%rax,2) 000000010000192a 杰 0x1000018c0 000000010000192c .byte 0xd3, 0xf6 #bad opcode 000000010000192e 调用 $0x608c,$0x851d69e3 0000000100001935 .byte 0x62 #bad opcode 0000000100001936 xchgl %ecx,%eax 0000000100001937 cmpb %ah,%cs:%cl 000000010000193a movsb (%esi),(%edi) 000000010000193b subb $0xc7,%al 000000010000193d outl %eax,$0x05 000000010000193f je 0x100001999 0000000100001941 inl $%cs:0x7d,%eax 0000000100001944 sbbl %ebp,0x7c5ec982(%rdx) 000000010000194a movsl (%esi),(%edi) 000000010000194b xchgl %ecx,%eax 000000010000194c movl $0x1393211e,%ecx 0000000100001951 .byte 0x27 #坏操作码 0000000100001952 cmpsl (%esi),(%edi) 0000000100001953 xchgl %esp,%eax 0000000100001954 .byte 0x1f #坏操作码 0000000100001955 addl $0x6ed2f22b,%eax 000000010000195a insb 000000010000195b .byte 0x67, 0xd5 #坏操作码 000000010000195d cmpl (%rdi),%edi 000000010000195f popq %rbp 0000000100001960 回复 0000000100001961 addl $0x961d3d82,%eax 0000000100001966 回复 0000000100001967 jle 0x100001938 0000000100001969 .byte 0x1e #坏操作码 000000010000196a 循环 0x100001936 000000010000196c movsl (%esi),(%edi) 000000010000196d 和 b $0xfc,(%rax) 0000000100001970 xchgl %ecx,%eax 0000000100001971 pushf 0000000100001972 movb $0xb0,%ah 0000000100001974 popq %rbp 0000000100001975 拉夫 0000000100001976 sbbl $0x9605ee9d,%eax 000000010000197b incb %bh 000000010000197d cmpl (%rcx),%ecx 000000010000197f testb 0x90(%rsp,%rsi,8),%ecx 0000000100001985 repz/int $0x3 0000000100001987 .byte 0x4c, 0x2f #坏操作码 0000000100001989 ljmp $0x072a,$0x233e8063 0000000100001990请假 0000000100001991 orb %al,(%rdx) 0000000100001993 andl (%rcx),%ebp 0000000100001995 ljmpl *(%rbx) 0000000100001997 shlb 0x26(%rdi) 000000010000199a movl $0x592a9d36,%esp
LLVM 反汇编器失败并显示输出
(__TEXT,__text) 部分 分段错误:11
通过cycript注入
我试图通过工具cycript
转储image
并修补它dd
,但似乎这个技巧不起作用并且二进制文件被破坏了。
调试器
gdb
/lldb
无法连接/启动这一进程,因为它的用途pt_deny_atach
/ sysctl
/kauth
反调试技术。
我还尝试修补 osx 内核(因为程序集不可用,我无法nop
调用) - 忽略反调试调用,但在此过程没有事件启动后,只是挂断(但其他应用程序如Github
,iTunes
启动没有任何问题,似乎它具有反反调试保护:))。
你能否建议一些额外的技术(或建议我可以尝试什么)来获得简单的组装?