iOS 逆向工程 app安全 网络安全iTunes 发布相关iOS逆向

iTunes逆向分析之OD脚本

2017-07-13  本文已影响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

文章地址

上一篇下一篇

猜你喜欢

热点阅读