-
-
[求助]请帮帮忙,帮看看这算法逆向计算公式如何写了! [已解决]
-
发表于:
2009-9-22 03:54
4761
-
[求助]请帮帮忙,帮看看这算法逆向计算公式如何写了! [已解决]
正在分析一个软件KEY的算法
解密算法部分已成功用汇编代码写出来了, 但想来想去还搞不懂如何写回一个加密算法出来!
没办法之下惟有向各位大侠求助一下了, 以下是我用汇编写的解密算法!
先谢谢各位大侠了, 帮助我一下吧!
.486
.model flat,stdcall
option casemap:none
include windows.inc
.data
PassWord db 'adferg!@#)*&^',0
Key dd 2CD84D10h,6BDA3AF5h,0C3B55EB8h,0FC3A36DFh,1308h
; 104DD82CF53ADA6BB85EB5C3DF363AFC0813
i dd 0
n dd 0
.data?
hInstance dd ?
.code
DllEntry proc hInst:HINSTANCE, reason:DWORD, reserved1:DWORD
mov eax, hInst
mov hInstance, eax
push offset Key
call Decrypt
mov eax, TRUE
ret
DllEntry Endp
Decrypt proc KeyIn:DWORD
LOCAL Host[14h]:BYTE
mov ecx,KeyIn
@@1:
.if i < 0Dh
inc i
.elseif
mov i,1
.endif
mov eax,offset PassWord
mov edx,i
movzx eax,byte ptr ds:[eax+edx-1]
inc n
mov edx,n
xor al,byte ptr ds:[ecx+edx+1]
.if al <= byte ptr ds:[ecx+edx]
add eax,0FFh
.endif
movzx ebx,byte ptr ds:[ecx+edx]
sub eax,ebx
mov byte ptr ds:[Host+edx-1],al
cmp dl,byte ptr ds:[ecx]
jl short @@1
mov dword ptr ds:[Host+edx],0
ret
Decrypt endp
End DllEntry
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!