我使用eicar.com文件並使用逆向工程工具進行遊戲。我希望能夠反彙編和重新組合這個文件。我接近了,但仍然存在一些我無法弄清楚的問題。拆卸和重新組裝,如何在終端中正確管道?
這是原來的eicar.com
ASCII文件。
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
使用udcli udcli -noff -nohex eicar.com > stage1.asm
我結束了這個x86彙編
pop eax
xor eax, 0x2550214f
inc eax
inc ecx
push eax
pop ebx
xor al, 0x5c
push eax
pop edx
pop eax
xor eax, 0x5e502834
sub [edi], esi
inc ebx
inc ebx
sub [edi], esi
jge 0x40
inc ebp
dec ecx
inc ebx
inc ecx
push edx
sub eax, 0x4e415453
inc esp
inc ecx
push edx
inc esp
sub eax, 0x49544e41
push esi
dec ecx
push edx
push ebp
push ebx
sub eax, 0x54534554
sub eax, 0x454c4946
and [eax+ecx*2], esp
sub ecx, [eax+0x2a]
最後,使用此命令把它重新走到一起與nasm
,nasm stage1.asm -o stage2
我結束了......
fXf5O!P%[email protected][4\fPfZfXf54(P^fg)7fCfCfg)7^O<8d>^R^@fEfIfCfAfRf- STANfDfAfRfDf-ANTIfVfIfRfUfSf-TESTf-FILEfg!$Hfg+H*
在這種情況下,我將從一個ASCII文件開始,並以一個包含大量額外垃圾的bin文件結束。
我在這裏錯過了什麼?我如何最終得到原始的ASCII字符串並且具有正確的文件類型?
編輯: Per @Ross Ridge的建議,他指出我正在拆分16位文件作爲32位文件,它已成功清理了字符串,但是他的文件類型仍然被錯誤地輸出爲二進制文件。
首次定位:udcli -16 -noff -nohex eicar.com > stage1.asm
,以獲得正確的輸出字符串。
結果X5O!P%@AP[4\PZX54(P^)7CC)7^O<8d>"^@EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
還是有點垃圾數據不存在於原始的,但非常接近。
您將其拆分爲32位代碼並將其組裝爲16位代碼。鑑於擴展名,你應該將其拆分爲16位代碼。 –
@羅斯里奇你的權利!清理了字符串。我將編輯原始問題,但輸出文件類型仍然不正確。我發現我可以用'nasm'明確地改變這個,但是我沒有看到一個ASCII選項。是否有其他工具或步驟我應該考慮? –
它看起來像你正在使用正確的輸出文件類型與NASM,二進制文件類型。你可以用'-f bin'明確指定它。 ASCII文件是隻包含ASCII字符的二進制文件,而您的源二進制文件「eicar.com」恰好只包含ASCII字符。 –