Windows逆向分析入門(六)——實戰篇(用戶信息)


前言

  這一篇,開始實戰。用到找偏移的第一個方法:內存搜索。目的是獲得用戶信息。

 

一、找偏移

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、運行結果

  

 

工具和教程,放群里(163419350),方便交流。

實戰代碼也會放在github:https://github.com/KongKong20/WeChatPCHook

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM