前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PC微信逆向:分析发送xml名片call

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

作者头像
信安之路
发布2019-08-06 17:18:54
1.3K0
发布2019-08-06 17:18:54
举报
文章被收录于专栏:信安之路信安之路

本文作者:鬼手56(信安之路病毒分析小组成员) 成员招募:信安之路病毒分析小组寻找志同道合的朋友

微信版本

定位发送 xml 名片 call

发送 xml 名片 call 的切入点

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

定位选择联系人的 call

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

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

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

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

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

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

定位发送 xml 名片的 call
定位接收者的微信 ID

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

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

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

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

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

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

定位发送 xml 名片的 call

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

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

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

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

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

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

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

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

验证发送 xml 名片的 call

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

方法扩展

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定位发送 xml 名片 call
    • 发送 xml 名片 call 的切入点
      • 定位选择联系人的 call
        • 定位发送 xml 名片的 call
          • 定位接收者的微信 ID
        • 定位发送 xml 名片的 call
          • 验证发送 xml 名片的 call
          • 方法扩展
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档