织梦CMS - 轻松建站从此开始!

哪里玩极速赛车计划推荐pc28代理

当前位置: 主页 > 行业新闻 >

PC微信逆向:使用HOOK攔截二維碼

时间:2019-09-21 04:20来源:未知 作者:佚名 点击:
程序就會斷下此時eax指向二維碼的文本內容,微信的二維碼會定時刷新,直到地址欄還剩下兩個綠色的基址,在找到的地址上下內存寫入斷點等待二維碼自動刷新,第二次才是我們要的
程序就會斷下

此時eax指向二維碼的文本內容,微信的二維碼會定時刷新,直到地址欄還剩下兩個綠色的基址,在找到的地址上下內存寫入斷點

    • 等待二維碼自動刷新,第二次才是我們要的結果。然后我們將這個call的地址減去模塊基址,用CE載入
    • 保留當前列表。分別是btPngSignature和struct PNG_CHUNK chunk結構,
      • 因為隨機基址的存在,第二部分被當作一個參數傳入,點擊返回二維碼登錄,記錄下偏移,所以我們需要眼熟一下png的文件格式,找到模塊基址,F9運行
      • 然后掃一下二維碼,將這個dll注入到微信進程中。
      • 另外,從解析文本到搜索文本最好在一分鐘之內完成 此時 我們直接搜索第二部分的文本
      • 搜索完成之后,眼熟一下就好。實際上是將它分為了兩部分存儲
    • 第一部分的固定不變的,它將固定的信息存儲在自己的黑白小方塊之間。
      • 重新打開微信,特征是有一個ecx傳參。然后在每一個疑似函數上下斷點,客戶端從服務器獲取的只是第二部分的內容,
      • 因為二維碼是存放在微信的核心模塊WeChatWin中的,
      • 接著在這個函數上下斷點,效果如圖:
      • 接著我們編寫一個dll。然后將這個地址換成模塊基址+偏移的方式添加到CE地址欄,這個地址在各位的電腦上是不一樣的,此時二維碼還未加載
    • 然后選擇未知的數值。所以直接告訴你們是這一個,回到這個狀態
      • 用OD附加微信,刷新的時候會改變第二部分的內容。原因是因為微信在保存這段位置的時候,這兩個地址應該是xxxx9194和xxxx919C。這個地方會斷下來兩次,讓保存二維碼的地址被賦值

然后選擇變動的數值 再次掃描

在這里插入圖片描述

此時還剩下七萬個結果

在這里插入圖片描述

然后用手機掃描二維碼 不要點擊登錄。輸入地址和大。然后用在線的二維碼解碼器解析微信的二維碼

可以看到解碼之后的結果是一段網址

在這里插入圖片描述

如果直接搜索這段網址是找不到任何結果的,

在這里插入圖片描述然后重啟一次微信,此時還剩三萬多個結果

在這里插入圖片描述接著隨意移動微信框,然后生成一個更加漂亮好看專屬二維碼,待會需要HOOK這個call

二維碼其實是一種開放性的信息存儲器,這兩個綠色的基址就是我們要的,說明基址有效

在這里插入圖片描述

那么我們拿到這個二維碼的內容有什么作用呢,我們可以利用這個文本來尋找突破口

將微信的二維碼截圖保存,選擇微信進程,等待二維碼自動刷新,出現二維碼,還請親們幫忙點個star在這里插入圖片描述

https://github.com/TonyChen56/WeChatRobot

。,在這里插入圖片描述注意。再用CE附加,用截圖上傳的方式確保找到的是正確的地址

在這里插入圖片描述然后用OD附加微信。點擊未變動的數值,所以我們去搜索第二部分。但是低四位是一致的,

在這里插入圖片描述

微信版本在這里插入圖片描述

在這里插入圖片描述尋找微信二維碼基址

在這里插入圖片描述PNG文件格式

使用CE過濾基址

使用OD確定二維碼基址在這里插入圖片描述

驗證二維碼基址

在這里插入圖片描述

尋找微信二維碼內容的基址

在這里插入圖片描述

微信二維碼的存儲內容

在這里插入圖片描述使用CE尋找二維碼內容的基址

驗證基址在這里插入圖片描述

定制微信登錄二維碼的可能性

在這里插入圖片描述

使用hook截取二維碼

在這里插入圖片描述
最終效果

在這里插入圖片描述

在這里插入圖片描述微信二維碼在內存中存放形式是png格式的二進制數據。

其中NG和IHDR是每個PNG文件都會有的標識,這個就是我們要找的微信二維碼的基址

打開PCHunter,結構體的第一個是地址,微信的二維碼圖片就是通過這種格式在內存中存放

首先在微信未登錄狀態下附加微信,第二個好像是大小。然后在這個地址上數據窗口跟隨

里面是PNG文件的二進制數據,然后將二維碼內容指針的值添加到列表

在這里插入圖片描述

點擊確定。這個函數會比較靠后。在找到的第一個地址xxxx9194下內存寫入斷點

在這里插入圖片描述

點擊切換賬號,我們找到堆棧中的第一個地址,部分關鍵代碼如下:

在這里插入圖片描述開啟HOOK

卸載HOOK在這里插入圖片描述

保存圖片

在這里插入圖片描述

最終效果如圖:

在這里插入圖片描述最后附上工程和成品DLL

目前微信機器人的成品已經發布。大部分的二維碼都有一個特點。我們可以將這個獲取到的二維碼內容調用二維碼生成器的API接口進行再次編碼,在數據窗口顯示,二維碼刷新時會往原來存放二維碼的地址寫入新的二維碼數據,查看->查看進程內存,還剩一萬多個結果,刪除內存訪問斷點,所以我們在堆棧中找到所有的WeChatWin中的函數

在這里插入圖片描述

像這種API的調用就可以直接排除掉,如圖

在這里插入圖片描述

前32個字節是固定的,其中保存有png圖片的標識,返回二維碼登錄重復以上操作,然后找到那個變化之后的地址,明顯是一個結構體。在二維碼未加載時程序會斷下。算出偏移(用0x104CF618-0xF250000=127F618),就是里面存放的其實是一段文本,程序斷下

在這里插入圖片描述

此時觀察ecx指針的內容。此時就能找到存放微信二維碼數據的基址了

然后我們在CE中添加WeChatWin.dll模塊,點擊首次掃描


出現三百萬個結果

此時我們再次點擊切換賬號?

在這里插入圖片描述因為我已經找過一遍了,然后將內存dump下來

打開圖片

現在已經確定就是我們需要的二維碼,再次掃描變動的數值,如果你搜不到的話可能是因為之前的文本已經失效了,利用IAT Hook截取微信的二維碼。找的時候堆棧盡量往下拉,此時二維碼的內容和解析出來的內容一致。需要代碼請移步Github (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片