https://bbs.kafan.cn/forum.php?m ... &extra=#pid42835247,更新了恢复工具,可以直接进PE下恢复。这个和以前的样本有所不用,没有直接的密码,也没有加密存储密码,密码是以动态计算方式得出。所以过了那些内存DUMP取密码的软件。
eg000:00B1 GetKeyInput proc near ; CODE XREF: seg000:0037↑p
seg000:00B1 ; seg000:loc_4C↑p ...
seg000:00B1 31 C9 xor cx, cx
seg000:00B3
seg000:00B3 loc_B3: ; CODE XREF: GetKeyInput+1B↓j
seg000:00B3 B4 00 mov ah, 0
seg000:00B5 CD 16 int 16h ; KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY
seg000:00B5 ; Return: AH = scan code, AL = character
seg000:00B7 88 C3 mov bl, al
seg000:00B9 81 E3 FF 00 and bx, 0FFh
seg000:00BD 3C 0D cmp al, 0Dh
seg000:00BF 74 EF jz short locret_B0
seg000:00C1 01 D9 add cx, bx
seg000:00C3 B0 2A mov al, 2Ah ; '*'
seg000:00C5 BB 07 00 mov bx, 7
seg000:00C8 B4 0E mov ah, 0Eh
seg000:00CA CD 10 int 10h ; - VIDEO - WRITE CHARACTER AND ADVANCE CURSOR (TTY WRITE)
seg000:00CA ; AL = character, BH = display page (alpha modes)
seg000:00CA ; BL = foreground color (graphics modes)
seg000:00CC E9 E4 FF jmp loc_B3
seg000:00CC GetKeyInput endp
seg000:00CC
seg000:002B BE DB 00 mov si, 0DBh ; Author
seg000:002E E8 70 00 call ShowBuffer
seg000:0031 BE FA 00 mov si, 0FAh ; EnterPassWord
seg000:0034 E8 6A 00 call ShowBuffer
seg000:0037 E8 77 00 call GetKeyInput
seg000:003A 81 F9 1D 02 cmp cx, 21Dh
seg000:003E 74 33 jz short PasswordOk
seg000:0040
seg000:0040 loc_40: ; DATA XREF: ShowBuffer:loc_A8↓r
seg000:0040 ; GetKeyInput+19↓r
seg000:0040 BE 0C 01 mov si, 10Ch ; wrong password
seg000:0043 E8 5B 00 call ShowBuffer
seg000:0046 BE FA 00 mov si, 0FAh ; EnterPassWord
seg000:0049 E8 55 00 call ShowBuffer
seg000:004C
seg000:004C loc_4C: ; DATA XREF: seg000:0096↓r
seg000:004C E8 62 00 call GetKeyInput
seg000:004F 81 F9 1D 02 cmp cx, 21Dh
seg000:0053
seg000:0053 loc_53:
seg000:0053 74 1E jz short PasswordOk
seg000:0055 BE 2A 01 mov si, 12Ah ; wrong password lat time
seg000:0058
seg000:0058 loc_58: ; DATA XREF: GetKeyInput+4↓r
seg000:0058 ; checkPressEnter+2↓r
seg000:0058 E8 46 00 call ShowBuffer
seg000:005B BE FA 00 mov si, 0FAh
seg000:005E E8 40 00 call ShowBuffer
seg000:0061 E8 4D 00 call GetKeyInput
seg000:0064 81 F9 1D 02 cmp cx, 21Dh
seg000:0068 74 09 jz short PasswordOk
seg000:006A BE 4C 01 mov si, 14Ch ; WrongPassWord
seg000:006D E8 31 00 call ShowBuffer
seg000:0070
ASCII 按键和为0X21D的才是正确的密码。当然简单的用我工具PE下直接修复即可。 |