Winapi Can';我似乎不明白这是怎么回事

Winapi Can';我似乎不明白这是怎么回事,winapi,assembly,x86,Winapi,Assembly,X86,我正在尝试确定此质询代码中的密码,但不知道它是如何工作的。有没有人对如何着手弄清楚它的作用有一些建议 .text:00401000 public start .text:00401000 start: .text:00401000 mov esi, offset loc_401013 .text:00401005 .text:00401005 loc_401005: ;

我正在尝试确定此质询代码中的密码,但不知道它是如何工作的。有没有人对如何着手弄清楚它的作用有一些建议

.text:00401000                 public start
.text:00401000 start:
.text:00401000                 mov     esi, offset loc_401013
.text:00401005
.text:00401005 loc_401005:                             ; CODE XREF: .text:00401011j
.text:00401005                 cmp     esi, offset byte_40105F
.text:0040100B                 jz      short loc_401013
.text:0040100D                 xor     byte ptr [esi], 0CDh
.text:00401010                 inc     esi
.text:00401011                 jmp     short loc_401005
.text:00401013 ; ---------------------------------------------------------------------------
.text:00401013
.text:00401013 loc_401013:                             ; CODE XREF: .text:0040100Bj
.text:00401013                                         ; DATA XREF: .text:starto
.text:00401013                 xor     bl, al
.text:00401015                 test    eax, 44CD8DFDh
.text:0040101A                 or      eax, edx
.text:0040101C                 jnp     short near ptr 400FE1h
.text:0040101E                 db      2Eh
.text:0040101E                 into
.text:00401020                 mov     esp, [esi]
.text:00401022                 xor     eax, 9936B34Ch
.text:00401027                 mov     edi, 0DBB8A8B8h
.text:0040102C                 cmpsd
.text:0040102D                 int     0A5h            ; used by BASIC while in interpreter
.text:0040102F                 sub     ebp, 0CDA5CD8Dh
.text:00401035                 in      eax, dx
.text:00401035 ; ---------------------------------------------------------------------------
.text:00401036                 dw 0CD8Dh
.text:00401038                 dd 0D832CDA7h, 0CD8DFD55h, 0CDA7D926h, 8DED81A5h, 0EDEDA5CDh
.text:00401038                 dd 0CDA7CD8Dh, 0FD55D832h, 0CDA7CD8Dh, 0FDA5D832h
.text:0040105C                 db 8Dh, 0CDh, 0Eh
.text:0040105F byte_40105F     db 0EEh                 ; DATA XREF: .text:loc_401005o
.text:00401060                 dd 90EEEEEEh, 90h, 66h dup(0)

代码只是用0xCD将每个字节从
loc_401013:
异或到
byte_40105F
,然后跳到代码的开头,这使得反汇编变得毫无意义。要查看代码在做什么,您需要使用0xCD对该范围内的每个字节进行异或运算,然后重新进行反汇编。

代码只需使用0xCD对
loc_401013:
中的每个字节进行异或运算,然后跳到该代码的开头,这使得反汇编变得毫无意义。要查看代码在做什么,您需要使用0xCD对该范围内的每个字节进行异或运算,然后重新对其进行反汇编。

这个问题(尤其是其模糊的标题)对该站点的未来访问者不太可能有用。你试过调试它吗?这个问题(特别是它模糊的标题)对网站的未来访问者不太可能有用。你试过调试它吗?