-
Notifications
You must be signed in to change notification settings - Fork 660
Home
ttttupup edited this page Feb 14, 2023
·
6 revisions
Welcome to the wxhelper wiki!
1.发送相关call
关键字 batchSendMsg
case 1 :发送文本
case 2 :发送图片
case 3 :发送文件
如何定位
可以通过CE搜索发送内容的相关引用
然后使用x64dbg或者od在地址处下断点
断点后一步步跟进即可。
熟练后,可以通过ida或者ghidra,直接通过关键字搜索即可。
定位到关键函数后
直接复制汇编,修改相应寄存器对应的值即可。
函数的相应参数可以通过动态调试观察,填写对应参数,注入后调用即可。
就这样一个关键call的调用就完成了。
在ghidra里的伪c代码里可以看到,case 1,2,3,4,5,6 就是对应的关键的发送相关的call。
多练习实践就孰能生巧了。
sqlite3的定位相当简单,一分钟搞定。
因为sqlite3为了保持兼容性,api是向下兼容的,在sqlite3.c文件里有个sqlite3_api_routines,把api固定了。
所以随便定位一个函数,根据他的引用就可以定位到sqlite3_api_routines,然后直接按偏移计算其他函数即可。
sqlite3_close函数特征最明显,直接搜索字符串 "unable to close due to unfinalized statements or unfinished backups"即可定位。
定位了该函数以后,其他函数根据sqlite3_api_routines的偏移也就全部定位到了。
微信里的引用如下:
和sqlite3.c里api保持一致。
微信使用的是SQLCipher加密sqlite3,推而广之也开源采用此方法定位key相关的函数。
再推而广之,开源项目的逆向基本上都可以采用这种套路。