Windows逆向分析入门(六)——实战篇(用户信息)

前言

  这一篇,开始实战。用到找偏移的第一个方法:内存搜索。目的是获得用户信息。

 

一、找偏移

1、分析

  用户信息,属于获得数据。

  全局数据搜索,局部数据拦截。

  对于经常用到,又不怎么变动的数据,用全局变量会比较方便。

  用户信息,基本不会变动,也很多地方会用到,猜测是用全局变量存储。

 

2、方法

  对于全局变量,用CE进行内存搜索,看能不能找到。

 

3、验证

  1、看下自己的登陆信息

  Windows逆向分析入门(六)——实战篇(用户信息)

  

  2、用CE搜索用户名

  搜索结果有绿色的,说明偏移是固定。

  Windows逆向分析入门(六)——实战篇(用户信息)

 

  3、看下内存附近信息

  也有省份这些信息,说明个人信息是存在一起的

  Windows逆向分析入门(六)——实战篇(用户信息) 

  Windows逆向分析入门(六)——实战篇(用户信息)

 

  4、结论

    个人信息,确实是全局数据,可以直接搜索得到。

 

  5、OD查看更多信息

    用OD,可以更方便的查看更多的内存数据

    在CE中搜到的内存地址是5D49498C,在OD中可以看到

 

    1、dc 内存地址,能看到地址附加的文本

     Windows逆向分析入门(六)——实战篇(用户信息)

 

    2、dd 内存地址,能看到地址附加的指针所指向的文本(文本较长的情况,会用到指针)

    往下翻翻,能找到头像的指针和WXID的指针

    Windows逆向分析入门(六)——实战篇(用户信息) 

     Windows逆向分析入门(六)——实战篇(用户信息)

 

  6、计算偏移

    偏移 = 内存地址 - 模块基址

    内存地址已经知道,看下模块基址是什么?

    在CE中可以看出,用户名的数据所在模块是WeChatWin.dll

    Windows逆向分析入门(六)——实战篇(用户信息)

  

  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

   Windows逆向分析入门(六)——实战篇(用户信息)

 

  对应的偏移就可以计算出来了

    用户名        5D49498C - 5BDE0000  =  16B498C

    WXID指针 : 5D494D90 - 5BDE0000  =  16B4D90

    其他信息同理,自行计算下

 

二、写代码

1、外部工具

  1、新建MFC项目

  Windows逆向分析入门(六)——实战篇(用户信息)

 

  Windows逆向分析入门(六)——实战篇(用户信息)

 

  2、编写代码

  外部读取的函数是ReadProcessMemory

  代码有详细备注,仔细阅读应该能看懂

   Windows逆向分析入门(六)——实战篇(用户信息)

  Windows逆向分析入门(六)——实战篇(用户信息)

 

2、内部工具

  1、新建DLL项目

   Windows逆向分析入门(六)——实战篇(用户信息)

  

  2、编写代码

  Windows逆向分析入门(六)——实战篇(用户信息)

  Windows逆向分析入门(六)——实战篇(用户信息) 

  

  3、用OD把DLL注入到目标软件

   Windows逆向分析入门(六)——实战篇(用户信息)

  

  4、运行结果

  Windows逆向分析入门(六)——实战篇(用户信息)

 

Windows逆向分析入门(六)——实战篇(用户信息)

上一篇:Windows .MSC命令


下一篇:c# 截取字符串