PC微信逆向:分析@群成员call
文章目錄
- 發(fā)送消息函數(shù)的分析
- 定位組裝的數(shù)據(jù)格式
- 追蹤ebx+0x14
- 追蹤esi+0x4
- 追蹤eax
- 追蹤ebp-0x24
- 分析組裝數(shù)據(jù)的call
- 測試組裝數(shù)據(jù)的call是否有效
接上一篇文章,PCXX逆向:發(fā)送與接收消息的分析與代碼實現(xiàn):https://blog.csdn.net/qq_38474570/article/details/93339861
發(fā)送消息函數(shù)的分析
首先定位到發(fā)送消息的call
接著發(fā)送一條艾特消息讓程序斷下
普通消息和艾特消息的區(qū)別就在于eax結(jié)構(gòu)體的區(qū)別,所以我們查看一下eax的值
此時eax指向一個結(jié)構(gòu)體,我們數(shù)據(jù)窗口跟隨看看第一個地址里面保存的是什么
里面保存的是被艾特人的微信ID
然后再查看一下ebx消息文本的指針,格式必須是@微信昵稱 文本內(nèi)容
定位組裝的數(shù)據(jù)格式
想要調(diào)用微信發(fā)送艾特人消息的關(guān)鍵就在于如何組裝這樣一個數(shù)據(jù)格式,
這兩個地址的內(nèi)容對于我們來說都是未知的,所以我們要找到組裝這個數(shù)據(jù)格式的call,然后我們直接調(diào)用call拿到這個數(shù)據(jù)格式,再發(fā)送艾特消息
追蹤ebx+0x14
從這里可以得出eax來自于[ebx+0x14],接下來我們要找[ebx+0x14]來自于哪里
我們直接拉到函數(shù)頭部下斷點,發(fā)送一條艾特消息讓程序斷下
查看[ebx+0x14]的內(nèi)容,發(fā)現(xiàn)里面為空,接著我們單步,看這個地方是在哪里被賦值
單步到這里我們發(fā)現(xiàn)這一句將[esi+0x4]的值賦值給了ebx,也就是說[esi+0x4+0x14]的位置會被賦值到[ebx+0x14],我們查看[esi+0x4+0x14]的值,發(fā)現(xiàn)就是我們要組裝的數(shù)據(jù)結(jié)構(gòu)。所以,現(xiàn)在我們要查找[esi+0x4]的值來自于哪里。
追蹤esi+0x4
我們再次定位到函數(shù)頭部,發(fā)消息讓程序斷下
當(dāng)單步過mov esi,dword ptr ds:[eax]時,esi+0x14+0x4被賦值為我們追蹤的數(shù)據(jù)結(jié)構(gòu)
此時我們將esi替換為[eax],查看[eax]+0x14+0x4的內(nèi)容,就是我們需要的數(shù)據(jù)結(jié)構(gòu)
此時我們查看eax寄存器,指向了一個地址
這個地址偏移0x18的地方就是我們要找的數(shù)據(jù)結(jié)構(gòu),所以我們現(xiàn)在就要追溯eax來自于哪里
追蹤eax
eax來自于這個函數(shù)的參數(shù),所以我們定位到函數(shù)頭,找到返回地址,反匯編窗口跟隨,在返回地址前面一個call下斷點
這里我們發(fā)現(xiàn)eax來自于ebp-0x24,所以可以將eax換成ebp-0x24,我們查看一下[ebp-0x24]+0x14+0x4的內(nèi)容
就是我們在找的數(shù)據(jù)結(jié)構(gòu),繼續(xù)往上追,在這個函數(shù)的頭部下斷點,我們要追溯[ebp-0x24]的內(nèi)容來自于哪里?
追蹤ebp-0x24
當(dāng)我們步過這個call的時候發(fā)現(xiàn)ebp-0x24]+0x14+0x4被賦值為這個結(jié)構(gòu)體,說明這個call非常關(guān)鍵,有可能就是用來組裝數(shù)據(jù)的call
分析組裝數(shù)據(jù)的call
這個call將eax當(dāng)作參數(shù)傳入了堆棧,而eax現(xiàn)在是個空白的緩沖區(qū),我們F7單步跟進去
這里發(fā)現(xiàn)了一個call,傳入了一個空白的緩沖區(qū)
還有艾特消息的文本格式,F8步過這個call
此時緩沖區(qū)內(nèi)存放了我們需要的數(shù)據(jù),說明這個就是我們需要的組裝數(shù)據(jù)格式的call
測試組裝數(shù)據(jù)的call是否有效
目前微信機器人的成品已經(jīng)發(fā)布,需要代碼請移步Github。還請親們幫忙點個star
https://github.com/TonyChen56/WeChatRobot
總結(jié)
以上是生活随笔為你收集整理的PC微信逆向:分析@群成员call的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宏病毒的研究与实例分析06——终结篇 进
- 下一篇: PC微信逆向:分析发送xml名片call