Windows逆向分析入门(六)——实战篇(用户信息)
本帖最后由 KongKong20 于 2020-6-27 11:54 编辑# 前言
这一篇,开始实战。用到找偏移的第一个方法:内存搜索。目的是获得用户信息。
# 一、找偏移
## 1、分析
用户信息,属于获得数据。
全局数据搜索,局部数据拦截。
对于经常用到,又不怎么变动的数据,用全局变量会比较方便。
用户信息,基本不会变动,也很多地方会用到,猜测是用全局变量存储。
## 2、方法
对于全局变量,用CE进行内存搜索,看能不能找到。
## 3、验证
### 1、看下自己的登陆信息
### 2、用CE搜索用户名
搜索结果有绿色的,说明偏移是固定。
### 3、看下内存附近信息
也有省份这些信息,说明个人信息是存在一起的
## 4、结论
个人信息,确实是全局数据,可以直接搜索得到。
## 5、OD查看更多信息
用OD,可以更方便的查看更多的内存数据
在CE中搜到的内存地址是5D49498C,在OD中可以看到
1、dc 内存地址,能看到地址附加的文本
2、dd 内存地址,能看到地址附加的指针所指向的文本(文本较长的情况,会用到指针)
往下翻翻,能找到头像的指针和WXID的指针
## 6、计算偏移
偏移 = 内存地址 - 模块基址
内存地址已经知道,看下模块基址是什么?
在CE中可以看出,用户名的数据所在模块是WeChatWin.dll
OD可以看到WeChatWin.dll的基址是5BDE0000
Executable modules, 条目 8
基址=5BDE0000
大小=01946000 (26501120.)
入口=5CB34A63 WeChatWi.<ModuleEntryPoint>
名称=WeChatWi
文件版本=2.9.0.123
路径=C:\Program Files (x86)\Tencent\WeChat\WeChatWin.dll
对应的偏移就可以计算出来了
用户名 : 5D49498C - 5BDE0000=16B498C
WXID指针 : 5D494D90 - 5BDE0000=16B4D90
其他信息同理,自行计算下
# 二、写代码
## 1、外部工具
### 1、新建MFC项目
### 2、编写代码
外部读取的函数是ReadProcessMemory
代码有详细备注,仔细阅读应该能看懂
## 2、内部工具
### 1、新建DLL项目
### 2、编写代码
### 3、用OD把DLL注入到目标软件
### 4、运行结果
KongKong20 发表于 2020-6-27 18:11
CE那个位置指明模块是WeChatWin.dll
这句话紧接的截图,里面有特意加红框的,建议用电脑看,很明显的
嗯嗯,看到了,谢谢大佬了~之前看别人的文章都是告诉我干这个DLL,我但是就不告诉我,为啥干这个DLL,搞得我一头雾水 凌翰梓 发表于 2020-6-27 17:47
在CE中可以看出,用户名的数据所在模块是WeChatWin.dll
看了几遍了,真没有看到,CE那个位置指明模块是WeC ...
CE那个位置指明模块是WeChatWin.dll
这句话紧接的截图,里面有特意加红框的,建议用电脑看,很明显的 楼主辛苦~~ 系列好帖啊~~ 厉害, 楼主加油! 这个是大神了厉害了 厉害, 楼主加油! 楼主请问下你现在是基于最新版微信(2.9.0.112)出的教程吗? 在CE中可以看出,用户名的数据所在模块是WeChatWin.dll
看了几遍了,真没有看到,CE那个位置指明模块是WeChatWin.dll,盼解答
好像看到了,一遍一遍的过,被红框抢走了眼睛了{:1_907:} 我是蒲公英 发表于 2020-6-27 15:24
楼主请问下你现在是基于最新版微信(2.9.0.112)出的教程吗?
官网最新2.9.0.123
基址里面有说到的 不明觉厉!