首页 安全文摘 正文

PC微信逆向:分析发送xml名片call

微信版本定位发送 xml 名片 call发送 xml 名片 call 的切入点在发送 xml 名片时,需要先选择一个对象,我们首先要找的是选择的 call。找到了选择的 call,就能确定要发送的对象的微信 ID 的地址了。有了要发送对象的微信 ID 的地址之后就能下一个内存访问断点,通过栈回溯找到发送 xml 名片的 call定位选择联系人的 call那么

微信版本

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第1张

定位发送 xml 名片 call

发送 xml 名片 call 的切入点

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第2张

在发送 xml 名片时,需要先选择一个对象,我们首先要找的是选择的 call。找到了选择的 call,就能确定要发送的对象的微信 ID 的地址了。有了要发送对象的微信 ID 的地址之后就能下一个内存访问断点,通过栈回溯找到发送 xml 名片的 call

定位选择联系人的 call

那么如何定位到选择联系人的 call 呢?

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第3张

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第4张

可以通过上面的字符串的区别从而定位到字符串的位置,然后下内存写入断点,再定位到选择的 call

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第5张

在 CE 中搜索已选择了 1 个联系人,找到存放字符串的地址

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第6张

变化选择的联系人,最终确定字符串的地址,接着在 OD 中对这个地址下内存写入断点

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第7张

然后在微信选择一个联系人,程序断下。此时删除断点。既然要找选择联系人的 call,那么这个 call 里面必定有一个参数是当前选中的微信 ID,根据这个线索,我们在堆栈中找一个带有微信 ID 的返回地址

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第8张

反汇编窗口跟随,这个 call 就是选择联系人的 call

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第9张

定位发送 xml 名片的 call

定位接收者的微信 ID

接着我们在选择联系人的 call 下断,在微信中选择文件助手,让程序断下

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第10张

此时堆栈的参数中有选中的微信 ID,我们只要通过对这个微信 ID 下内存访问断点,栈回溯分析,就能找到发送 xml 名片的 call。

但是,这个 ID 我们是不能用的,因为它被当作一个参数传入函数中,这个微信 ID 是个局部变量,只要函数一结束,微信 ID 会自动销毁。所以我们需要找到函数调用后被赋值为微信 ID 的变量地址,然后对这个微信 ID 的地址下内存访问断点

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第11张

我们首先在 CE 中添加这个地址 

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第12张

接着将这个微信 ID 修改为一个比较独特的值,然后 F8 步过这个函数

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第13张

搜索修改之后的微信 ID,此时多了 1 个地址。这个多出来的 1 个地址就是我们所需要的。如果多出来两个地址,可以直接按 F9 让程序运行,此时地址只剩下一个。

定位发送 xml 名片的 call

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第14张

对找到的微信 ID 的地址下内存访问断点,F9 运行程序

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第15张

点击发送,此时程序断下,分析附近堆栈

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第16张

在堆栈的地址中找到一个参数,里面有微信 ID,那么这个很有可能就是我们需要的 call。在这个地方下断点

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第17张

程序断下,此时 eax 为微信 ID,ecx 为空。那么这个不是我们需要的 call,继续 F8 单步往下走

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第18张

此时我们看到这个 call 将 ForwardShareCard 这个字符串传入了堆栈,这个英文的意思是转发分享名片,那么可以猜测这个函数应该和发送 xml 名片的 call 有关系。继续往下单步

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第19张

这里有个 call eax,此时 ecx 指向我们分享的名片的微信 ID,那么这个函数应该和发送 xml 名片是有关系的,我们 F7 进入函数。

一直单步到这里我们找到了一个 call,此时 eax 指向一个 xml 的数据

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第20张

edx 指向接收者的微信 ID,那么这个 call 就非常有可能是我们要找的发送名片的 call

验证发送 xml 名片的 call

那么怎么验证呢?我们修改接收者的微信 ID,让原本发送给文件助手的 xml 名片发给好友,如果 xml 名片发给了微信好友,那么可以证明这个就是我们要的发送 xml 名片的 call

方法扩展

依次类推,这种方法可以定位大多数的微信功能的 call,只要是带有这种选择框的call,都可以通过这种方法,先找到选择的函数,然后再通过微信接收者的 ID,下内存访问断点,栈回溯分析附近代码找到所需要的 call

PC微信逆向:分析发送xml名片call 逆向分析 安全文摘  第21张

信安之路

作者鬼手56

海报

本文转载自互联网,如有侵权,联系删除

转载请注明本文地址:https://heibai.org.cn/1490.html

相关推荐

发布评论

ainiaobaibaibaibaobaobeishangbishibizuichiguachijingchongjingdahaqiandaliandangaodw_dogedw_erhadw_miaodw_tuzidw_xiongmaodw_zhutouganbeigeiliguiguolaiguzhanghahahahashoushihaixiuhanheixianhenghorse2huaixiaohuatonghuaxinhufenjiayoujiyankeaikeliankouzhaokukuloukunkuxiaolandelinileimuliwulxhainiolxhlikelxhqiuguanzhulxhtouxiaolxhwahahalxhzanningwennonuokpinganqianqiaoqinqinquantouruoshayanshengbingshiwangshuaishuijiaosikaostar0star2star3taikaixintanshoutianpingtouxiaotuwabiweifengweiquweiwuweixiaowenhaowoshouwuxiangjixianhuaxiaoerbuyuxiaokuxiaoxinxinxinxinsuixixixuyeyinxianyinyueyouhenghengyuebingyueliangyunzanzhajizhongguozanzhoumazhuakuangzuohenghengzuoyi
感谢您的支持