【答坛友问】PDF2TXT v3.2简单算法分析+ASM注册函数
【破文标题】PDF2TXT v3.2简单算法分析+ASM注册函数【破文作者】飘云/P.Y.G
【官方主页】https://www.chinapyg.com
【作者博客】http://blog.piaoyunsoft.com
【破解平台】WinXp SP3
【破解工具】PEiD0.94、OD
【作者邮箱】[email protected]
【软件名称】PDF2TXT v3.2
【软件大小】1.34M
【原版下载】http://verypdf.com/pdf2txt/pdf2txt.htm
问题由来:https://www.chinapyg.com/viewthread.php?tid=55225&page=1&extra=
OD载入程序运行,下断 BP MessageBoxA
找到到这里:
这里是 verypdf.dll 领空,而不是提问者所说的系统领空100019A2mov esi, dword ptr
100019A9push 0C8
100019AEmov ecx, 32
100019B3xor eax, eax
100019B5mov edi, 1001A850 ; 1234567890abcdef
100019BApush 1001A850 ; 1234567890abcdef
100019BFpush 3FB
100019C4push esi
100019C5rep stos dword ptr es:
100019C7call dword ptr ; USER32.GetDlgItemTextA
100019CDpush 1001A850 ; 1234567890abcdef
100019D2call 10001170 ; 算法CALL
{----------------------算法CALL-------------------------}
10001170sub esp, 18
10001173push ebx
10001174push esi
10001175mov esi, dword ptr
10001179lea edx, dword ptr
1000117Dpush edi
1000117Exor bl, bl
10001180mov al, byte ptr ; KEY
10001183mov cl, byte ptr ; KEY
10001186push edx
10001187mov byte ptr , al
1000118Bmov byte ptr , bl
1000118Fmov byte ptr , cl
10001193mov byte ptr , bl
10001197call 100027D1 ; KEY校验
1000119Cmov edi, eax
1000119Elea eax, dword ptr
100011A2push eax
100011A3call 100027D1 ; KEY校验
100011A8add edi, eax
100011AAadd esp, 8
100011ADcmp edi, 0B ; 校验通过后两数相加要=11
100011B0je short 100011BB
100011B2pop edi
100011B3pop esi
100011B4xor eax, eax
100011B6pop ebx
100011B7add esp, 18
100011BAretn
100011BBmov cl, byte ptr ; KEY
100011BDmov dl, byte ptr ; KEY
100011C0lea eax, dword ptr
100011C4mov byte ptr , cl
100011C8push eax
100011C9mov byte ptr , bl
100011CDmov byte ptr , dl
100011D1mov byte ptr , bl
100011D5call 100027D1
100011DAlea ecx, dword ptr
100011DEmov edi, eax
100011E0push ecx
100011E1call 100027D1
100011E6add edi, eax
100011E8add esp, 8
100011EBcmp edi, 8 ; 校验通过后两数相加要=8
100011EEje short 100011F9
100011F0pop edi
100011F1pop esi
100011F2xor eax, eax
100011F4pop ebx
100011F5add esp, 18
100011F8retn
100011F9mov cl, byte ptr ; KEY
100011FCmov al, 24 ; $
100011FEcmp cl, al ; KEY必须为 $
10001200je short 1000120B
10001202pop edi
10001203pop esi
10001204xor eax, eax
10001206pop ebx
10001207add esp, 18
1000120Aretn
1000120Bcmp byte ptr , al ; KEY必须为 $
1000120Eje short 10001219
10001210pop edi
10001211pop esi
10001212xor eax, eax
10001214pop ebx
10001215add esp, 18
10001218retn
10001219mov cl, byte ptr ; KEY
1000121Cxor eax, eax
1000121Ecmp cl, 40 ; KEY必须为@
10001221pop edi
10001222pop esi
10001223pop ebx
10001224sete al ; 标志位
10001227add esp, 18
1000122Aretn【算法总结】
1.KEY + KEY = 11
2.KEY + KEY = 8
3.KEY = $(24h)
4.KEY = $(24h)
5.KEY = @(40h)
6.其他位用随机字符填充即可
【注册函数】
.data
szFormat db '%s',0
szConstTable db '0123456789abcdefghijklmnopqrstuvwxyz',0
.code
_Rand proc uses ecx edx First:DWORD,Second:DWORD
rdtsc
;invoke GetTickCount
mov ecx,23
mul ecx
add eax,7
mov ecx,Second
sub ecx,First
inc ecx
xor edx,edx
div ecx
add edx,First
mov eax,edx
ret
_Rand endp
;=================================================
;注册算法:
;1.KEY + KEY = 11
;2.KEY + KEY = 8
;3.KEY = $(24h)
;4 KEY = $(24h)
;5 KEY = @(40h)
;6 其他位用随机字符填充即可
;Code By PiaoYun/P.Y.G
;=================================================
KeyGen proc
LOCAL @szKey:BYTE;多定义一个字节空间~ 否则出问题
LOCAL @szOut:BYTE
invoke RtlZeroMemory,addr @szOut,sizeof @szOut
invoke RtlZeroMemory,addr @szKey,sizeof @szKey
xor eax,eax
xor ecx,ecx
xor edx,edx
;KEY
invoke _Rand,2,9
movzx edx,byte ptr
mov byte ptr[@szKey + 14],dl
;计算KEY
mov edx,11
sub edx,eax
movzx edx,byte ptr
mov byte ptr[@szKey + 15],dl
;KEY
invoke _Rand,0,8
movzx edx,byte ptr
mov byte ptr[@szKey + 0],dl
;计算KEY
mov edx,8
sub edx,eax
movzx edx,byte ptr
mov byte ptr[@szKey + 1],dl
mov byte ptr[@szKey + 5],24h
mov byte ptr[@szKey + 6],24h
mov byte ptr[@szKey + 7],40h
;KEY:2、3、4
mov ecx,2
@@:
invoke _Rand,0,35
movzx edx,byte ptr
mov byte ptr[@szKey + ecx],dl
inc ecx
cmp ecx,5
jl @B
;KEY:8,9,10,11,12,13
mov ecx,8
@@:
invoke _Rand,0,35
movzx edx,byte ptr
mov byte ptr[@szKey + ecx],dl
inc ecx
cmp ecx,14
jl @B
invoke lstrcat,addr @szOut,addr @szKey ;连接字符串
lea eax,@szOut
ret
KeyGen endp
【版权声明】 本文纯属技术交流, 原创于PYG官方论坛, 转载请注明作者并保持文章的完整, 谢谢! 第一个来学习 呵呵,第二个来学习! 谢谢版主了。我是第三个来学习得 我早上下载了这个软件,下班回来刚分析完,发现老大的分析与我不睦而和,哈哈,学习了 原帖由 老万 于 2010-4-30 20:34 发表 https://www.chinapyg.com/images/common/back.gif
我早上下载了这个软件,下班回来刚分析完,发现老大的分析与我不睦而和,哈哈,学习了
向您学习 学习一下老大的算法
页:
[1]