iTunes逆向分析之OD脚本

作者: 塔塔简 | 来源:发表于2017-07-13 22:56 被阅读69次

    背景

    OD(OllyDbg)2.x之前的版本只支持x86调试,作者虽然说2.x会支持x64调式,但一直没更新。随着iTunes开始支持64位后,现在对iTunes的分析主要用X64Dbg工具了,不但开源的,作者还持续不断的在更新,兼容OD原有的使用方式,提供更多好用的辅助,之前分析32位iTunes时,写过一些辅助脚本,这里分享一个查看iTunes内存中CFDictionaryCFArrayPlist等内容的脚本,可以把它们dump出来为plist文件,是你分析AppleID登录,刷榜的得力助手。

    实现代码

    ;查看某地址所指CFDictionary,CFArray等对应的XML表示,方便查看数据包内容,不用写hook来查看 Edited By xyq@2017-3-23 17:17:50
    
    mov myret , eip
    pusha
            
    exec
    push 0
    push 0
    push 64                         ;C8h 表示二进制plist,64h表示xml plist
    push 1A37D460                       ;ecx可以是任何指向能转换为plist的CFXXX指针
    push 0
    call CFPropertyListCreateData
    add esp , 14                    ;栈平衡
    ende
    mov plistPointer , eax
    cmp eax,0                       ;并不是所有CFDict,CFArray都能转换为plist,因此判断下转换结果
    jnz lbl_output
    
    ;msg "CFPropertyListCreateData call faild"
    log "CFPropertyListCreateData call faild"
    
    exec
    push 1A37D460                       ;ecx可以是任何指向能转换为plist的CFXXX指针
    call CFShow                     ;通过CFShow显示无法转换为plist的数据
    add esp , 4
    ende
    
    jmp lbl_end
    
    lbl_output:
    ;get xml pointer
    exec
    push eax
    call CFDataGetBytePtr
    add esp , 4
    ende
    mov xmlPointer , eax
    log eax
    gstr eax                        ;指针所指的地方转换为字符串
    log $RESULT
    ;msg $RESULT                    ;XMLPlist太长脚本窗口看不到完整字符串,则Pause时内存窗口查看eax既可
    
    ;get xml length
    mov eax , plistPointer
    exec
    push eax
    call CFDataGetLength
    add esp , 4
    ende
    mov xmlLen , eax
    dm xmlPointer , xmlLen , "d:\oddump.plist"
    lbl_end:
    
    mov eip , myret
    popa
    ret
    

    使用说明

    OD调式iTunes时,如果你分析到某个内存或者EAX等认为是CFDictionary之类内容时候,就可以在插件菜单加载本脚本执行,即可在D盘根目录看到想要输出了,具体细节参考注释,有疑问可以联系我有疑问到我微信公众号留言

    ContactMe

    文章地址

    相关文章

      网友评论

        本文标题:iTunes逆向分析之OD脚本

        本文链接:https://www.haomeiwen.com/subject/dewghxtx.html