Skip to content
ttttupup edited this page Feb 14, 2023 · 6 revisions

Welcome to the wxhelper wiki!

找call方法

1.发送相关call

关键字 batchSendMsg
case 1 :发送文本
case 2 :发送图片
case 3 :发送文件

如何定位

可以通过CE搜索发送内容的相关引用 image

然后使用x64dbg或者od在地址处下断点
image 断点后一步步跟进即可。
熟练后,可以通过ida或者ghidra,直接通过关键字搜索即可。
定位到关键函数后
image 直接复制汇编,修改相应寄存器对应的值即可。
image 函数的相应参数可以通过动态调试观察,填写对应参数,注入后调用即可。
就这样一个关键call的调用就完成了。

在ghidra里的伪c代码里可以看到,case 1,2,3,4,5,6 就是对应的关键的发送相关的call。
Z%9$~~~SE TDQWRHK1CHULV

多练习实践就孰能生巧了。

sqlite3偏移定位

sqlite3的定位相当简单,一分钟搞定。 因为sqlite3为了保持兼容性,api是向下兼容的,在sqlite3.c文件里有个sqlite3_api_routines,把api固定了。
image
所以随便定位一个函数,根据他的引用就可以定位到sqlite3_api_routines,然后直接按偏移计算其他函数即可。
sqlite3_close函数特征最明显,直接搜索字符串 "unable to close due to unfinalized statements or unfinished backups"即可定位。
image
定位了该函数以后,其他函数根据sqlite3_api_routines的偏移也就全部定位到了。

微信里的引用如下:
image

和sqlite3.c里api保持一致。

微信使用的是SQLCipher加密sqlite3,推而广之也开源采用此方法定位key相关的函数。
再推而广之,开源项目的逆向基本上都可以采用这种套路。

Clone this wiki locally