一個qq馬的區(qū)分(轉(zhuǎn)邪惡8進制)
發(fā)表時間:2023-05-27 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]一個qq馬的分析 文章作者:Monster[E.S.T] 原始出處:http://www.hackerm.com.cn/read.php/31.htm 信息來源:邪惡八進制信息安全團隊(...
一個qq馬的分析
文章作者:Monster[E.S.T]
原始出處:http://www.hackerm.com.cn/read.php/31.htm
信息來源:邪惡八進制信息安全團隊(www.eviloctal.com)
該文章已發(fā)表于《黑客X檔案》0906期,后由原創(chuàng)作者友情提交到邪惡八進制信息安全團隊, 轉(zhuǎn)載請著名原作者和原始出處
最近Blog人氣瘋狂下跌, 就隨便發(fā)篇垃圾文過來廣告一下Blog, 希望大牛們不要B4我.
就快要高考了, 好長時間沒上網(wǎng)了。 今天好不容易抽出點時間, 剛上QQ一個我不認識的小子就說要給我個黃站發(fā)布器, 我一高興就要了因為我在網(wǎng)吧, 也沒多想就直接運行了, 結(jié)果剛運行文件一下子就沒了, 過了一會qq又掉了, 我心里一涼啊, 哎, 又是馬啊, 那就拿出來逆逆吧!
直接放到OD里, 代碼如下: 復(fù)制內(nèi)容到剪貼板
代碼:
0041D987 > 60 pushad
0041D988 E8 09000000 call 0041D996
0041D98D 05 D80100E9 add eax, E90001D8用PEID來分析來看看, PEID說是Upack 0.3.9 beta2s -> Dwing的殼, 記得這是個很古老的殼了, 不管什么殼, 看到第一句的pushad大部分就應(yīng)該可以用ESP定律來脫了。 為什么?翻翻以前的雜志, 看看ESP定律的原理就行了。
在OD中按F8跟蹤一下, 只要看見ESP寄存器的數(shù)據(jù)變紅, 然后就執(zhí)行命令hr esp, 然后按F9讓它運行起來, 接著程序就被斷在了這里: 復(fù)制內(nèi)容到剪貼板
代碼:
0041DB9C 61 popad
0041DB9D - E9 8F54FFFF jmp 00413031這里的popad和pushad是一對, 看到這個popad, 基本說明我們成功了, 我們跟隨這個jmp跳過去就到了程序的OEP了, 直接使用OD把它DUMP出來, 再用PEID看看, 說是Microsoft Visual C++ 6.0 [Overlay], 已經(jīng)沒殼了。
我們用OD載入脫殼后的文件, F8跟蹤幾下后就可以看到如下代碼: 復(fù)制內(nèi)容到剪貼板
代碼:
00405086 E8 65EBFFFF call <jmp.&kernel32.OpenMutexA>
0040508B 85C0 test eax, eax
0040508D 75 13 jnz short 004050A2剛開始先打開互斥(用來判斷程序運行是否唯一), 繼續(xù)往下看: 復(fù)制內(nèi)容到剪貼板
代碼:
004050E9 E8 16EEFFFF call 00403F04
004050EE 8B55 EC mov edx, dword ptr [ebp-14]
004050F1 B8 B0764000 mov eax, 004076B0
004050F6 E8 05E0FFFF call 00403100
004050FB A1 B0764000 mov eax, dword ptr [4076B0]
00405100 E8 EFE2FFFF call 004033F4 這段代碼用來得到一個隨即字符串作為DLL的文件名
我們略過這些,直接看關(guān)鍵代碼: 復(fù)制內(nèi)容到剪貼板
代碼:
0040188A . 6A 02 push 2 ; /Origin = FILE_END
0040188C . 6A 00 push 0 ; pOffsetHi = NULL
0040188E . 6A C4 push -3C ; OffsetLo = FFFFFFC4 (-60.)
00401890 . FFB5 ACFEFFFF push dword ptr [ebp-154] ; hFile
00401896 . FF15 1C304000 call dword ptr [<&KERNEL32.SetFilePoi>; \SetFilePointer這里的代碼用于調(diào)整好文件指針用來讀文件, 繼續(xù)往下看: 復(fù)制內(nèi)容到剪貼板
代碼:
0040189C . 8365 EC 00 and dword ptr [ebp-14], 0
004018A0 . 6A 00 push 0 ; /pOverlapped = NULL
004018A2 . 8D45 EC lea eax, dword ptr [ebp-14] ;
004018A5 . 50 push eax ; pBytesRead
004018A6 . 6A 3C push 3C ; BytesToRead = 3C (60.)
004018A8 . 8D85 B0FEFFFF lea eax, dword ptr [ebp-150] ;
004018AE . 50 push eax ; Buffer
004018AF . FFB5 ACFEFFFF push dword ptr [ebp-154] ; hFile
004018B5 . FF15 30304000 call dword ptr [<&KERNEL32.ReadFile>] ; \ReadFile開始讀文件了, 再往下幾行我們會看到這里:
004018BB . 6A 3C push 3C 復(fù)制內(nèi)容到剪貼板
代碼:
004018BD . 8D85 B0FEFFFF lea eax, dword ptr [ebp-150] ; 取加密字符地址
004018C3 . 50 push eax ; 壓入加密字符地址
004018C4 . E8 B90A0000 call 00402382 ; 進行解密這里是解密算法,對加密信息進行解密,我們這里所謂的加密信息就是從文件中讀出來的盜號賊的密碼什么的, 我們按F7跟進這個call, 看這里的解密算法代碼:
004023AD > /8B45 F8 mov eax, dword ptr [ebp-8] 復(fù)制內(nèi)容到剪貼板
代碼:
004023B0 . 40 inc eax ; eax加1, 已經(jīng)解密到第eax位
004023B1 . 8945 F8 mov dword ptr [ebp-8], eax ; 保存位數(shù)
004023B4 > 8B45 F8 mov eax, dword ptr [ebp-8] ; 讀取位數(shù)
004023B7 . 3B45 0C cmp eax, dword ptr [ebp+C] ; 是否解密到最后一位
004023BA . 73 16 jnb short 004023D2 ; 解密完成剛跳走
004023BC . 8B45 FC mov eax, dword ptr [ebp-4] ; 取加密字符地址到eax
004023BF . 0345 F8 add eax, dword ptr [ebp-8] ; 該位的ASCII值與位數(shù)進行與運算
004023C2 . 0FB600 movzx eax, byte ptr [eax] ; 按位取加密字符
004023C5 . 83F0 12 xor eax, 12 ; 該位的ASCII值與12H進行異或運算
004023C8 . 8B4D FC mov ecx, dword ptr [ebp-4]
004023CB . 034D F8 add ecx, dword ptr [ebp-8]
004023CE . 8801 mov byte ptr [ecx], al ; 保存該位加密后的值
004023D0 .^\EB DB jmp short 004023AD再F8往下跟蹤幾句, 會看到這樣的代碼: 復(fù)制內(nèi)容到剪貼板
代碼:
004047D3 8D45 E0 lea eax, dword ptr [ebp-20] 這里把解密后的明文地址放到eax里, 我們執(zhí)行命令d eax, 嘿, 看見好東西了, 郵箱帳號, 密碼。 到這里我們的分析也算結(jié)束了, 用剛剛得到的郵箱帳號和密碼登錄上去, 嘿, 小樣, 你的郵箱歸我嘍, 上面有1000+的qq, 這時突然想到這個盜號賊在盜號之前肯定會拿自己的號先測試一下什么的, 我一直往前翻, 終于在前面找到了這個盜號賊的密碼, 密碼還挺讓人郁悶的, “fuckmepahhyyou”, 哎, 真不知道這人怎么樣想的, 不管了, 登上去看看。
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學(xué)習(xí)了安全知識,幾乎可以讓你免費電腦中毒的煩擾。