已发现调试器在您的系统中运行

逆向工程 艾达 调试 反调试
2021-06-23 06:47:57

出于教育原因,我刚刚进入逆向工程,所以我找到了一个我想要逆向的应用程序。基本上它有一个基本的身份验证系统(登录和通过)。我使用 Wireshark 嗅探流量,发现数据包已加密。所以我开始对它进行逆向工程。我用隐形插件尝试了 Ollydbg 和 IDApro,但仍然无法用调试器运行它。当我尝试使用调试器运行它时,这是一条消息:

A debugger has been found running in you system
Please unload it from memory and restart your computer

我想这是一个防止调试的库,因为它是一个非常标准的消息,因为当我尝试用谷歌搜索它时,它不仅出现在这个程序中。

所以我深入研究代码。此时我只发现了这两个功能:

.vmp1:013F9BDC loc_13F9BDC:                            ; CODE XREF: sub_1427AA5+4j
.vmp1:013F9BDC                 not     dl
.vmp1:013F9BDE                 bt      ebx, 1Eh
.vmp1:013F9BE2                 rol     dl, 3
.vmp1:013F9BE5                 call    loc_144B5CD
.vmp1:013F9BEA                 and     al, 14h
.vmp1:013F9BEC                 xor     al, 0C3h
.vmp1:013F9BEE                 lodsb
.vmp1:013F9BEF                 cmp     al, 0EAh
.vmp1:013F9BF1                 imul    ebx
.vmp1:013F9BF3                 add     [eax-36h], edx
.vmp1:013F9BF6                 mov     dh, 0DFh
.vmp1:013F9BF8                 sub     ch, [eax]
.vmp1:013F9BFA                 test    al, dh
.vmp1:013F9BFC                 wait
.vmp1:013F9BFD                 adc     esi, 28h
.vmp1:013F9C00                 int     3               ; Trap to Debugger
.vmp1:013F9C01                 sub     ah, bh
.vmp1:013F9C03                 shr     byte ptr [ecx], 1
.vmp1:013F9C05                 jmp     far ptr 0F03Dh:0AE62FB1Fh

    loc_1402816:                            ; CODE XREF: sub_15E0009-1DD80Ej
.vmp1:01402816                 pop     ebp
.vmp1:01402817                 arpl    [ebx], cx
.vmp1:0140281A                 adc     al, 0C8h
.vmp1:0140281C                 int     3               ; Trap to Debugger
.vmp1:0140281D                 sbb     al, 0B2h
.vmp1:0140281F                 loopne  loc_140285A
.vmp1:01402821                 or      al, 0CFh
.vmp1:01402823                 fisttp  qword ptr [edi]
.vmp1:01402825                 xchg    eax, edx
.vmp1:01402826                 sbb     ah, 7Fh
.vmp1:01402829                 retf
.vmp1:01402829 ; END OF FUNCTION CHUNK FOR sub_15E0009
.vmp1:01402829 ; -----------------------------------------------------------------
.vmp1:0140282A                 dw 0BB70h
.vmp1:0140282C                 dd 2FEC5FA0h, 1C84B195h, 0E7C1879Fh, 0F4D8BCF8h
.vmp1:0140283C ; -----------------------------------------------------------------
.vmp1:0140283C                 push    ds
.vmp1:0140283D ; START OF FUNCTION CHUNK FOR sub_15E0009

我还尝试取消定义这些或定义为 nop。我对倒车很陌生,我只知道基本的汇编程序,但有 C 或 C++ 和其他一些语言的背景。我怎样才能避免这种反调试?也许插件的一些特定设置?或者也许使用另一个调试器?现在我正在尝试使用 Windbg 并赢得 32 调试器。或者请告诉我在哪里挖。这是 DIA 输出。在此处输入图片说明

0个回答
没有发现任何回复~