最近深入的学习很多破解的东西
学到注册机这一块,觉得很难学下去,把握不到算法,,,虽然很努力了 但是还是 没有办法得到算法
文件的连接在下面
这个注册方式蛮奇怪的
http://www.namipan.com/d/st.rar/e4fa8baad07dd1844f43b19bf2b65e896e226d40714c7401
官方的一组可用的KEY 是 IP地址和序列号
IP=222.222.28.22,222.222.28.17,121.28.218.26,121.28.218.25 这里是IP
KEY0=115 这个数字意义不是很大(是软件的一个参数,应该是管理的数目.我的目标是学会找到算法和分析出算法思想)
KEY1=3C02 A08B 1DC2 D2A4 0A0B 55B3 F875 213E A2C2 0CD8 8B2B 这个是序列号
里面的配置文件.INI文件非常重要...如果没有这个文件就没办法启动
具体的保护方式不是很清楚 这个文件经过无壳话处理跟原文件一致的,这个是AU3的脚本语言写的
我看到一些还原代码的东西 ,但是我实在不懂这个语言.....也就不太会还原
算法分析应该是很常规的算法.......作为简单的学习例子稍微难点 ....但是自己分析下 觉得还行
但是由于学的时间短了点 没什么经验 希望大家多提意见.
希望论坛的高手能够给予新人适当的鼓励
先谢谢大家
IDA
呵呵看了好久没找到算法部分
第一部分
Attributes: bp-based frame
; int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
_WinMain@16 proc near
hLibModule= dword ptr -160h
var_158= dword ptr -158h
pvParam= dword ptr -154h
var_150= dword ptr -150h
var_148= dword ptr -148h
var_144= dword ptr -144h
var_140= dword ptr -140h
var_138= dword ptr -138h
var_134= dword ptr -134h
var_130= byte ptr -130h
var_1B= byte ptr -1Bh
var_15= byte ptr -15h
hInstance= dword ptr 8
hPrevInstance= dword ptr 0Ch
lpCmdLine= dword ptr 10h
nShowCmd= dword ptr 14h
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 164h
mov eax, [ebp+hInstance]
push ebx
push esi
push edi
xor edi, edi
mov hInstance, eax
xor ebx, ebx
lea eax, [esp+170h+var_150]
inc ebx
push eax
lea esi, [esp+174h+var_140]
mov dword_4744C4, edi
mov dword_4744C0, edi
mov [esp+174h+var_140], edi
mov [esp+174h+var_138], ebx
mov [esp+174h+var_134], edi
mov [esp+174h+var_150], edi
mov [esp+174h+var_148], ebx
mov [esp+174h+var_144], edi
call sub_4104AD
lea esi, [esp+170h+hLibModule]
mov [esp+170h+hLibModule], edi
mov [esp+170h+var_158], edi
mov dword_4744EC, edi
call sub_401A4B
test al, al
jz short loc_40198C
第二部分
call sub_401A4B
test al, al
mov eax, [esp+170h+var_158]
jnz short loc_401985
第三部分
mov eax, offset sub_427696
第四部分
loc_401985:
call eax
mov dword_4744EC, eax
第五部分
loc_40198C: ; int (__cdecl *)(unsigned int)
push offset sub_4018EE
call ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z ; _set_new_handler(int (*)(uint))
pop ecx
push ebx ; int
call ?_set_new_mode@@YAHH@Z ; _set_new_mode(int)
pop ecx
lea ebx, [esp+170h+var_130]
call sub_40536C
mov al, [esp+170h+var_15]
cmp al, 1
mov cl, [esp+170h+var_1B]
mov esi, ds:SystemParametersInfoA
mov byte_4744B5, al
mov byte_4744B4, cl
mov ebx, 2001h
jz short loc_4019D4
第六部分
cmp cl, 1
jnz short loc_4019F2
第七部分
loc_4019D4: ; fWinIni
push edi
lea eax, [esp+174h+pvParam]
push eax ; pvParam
push edi ; uiParam
push 2000h ; uiAction
call esi ; SystemParametersInfoA
mov eax, [esp+170h+pvParam]
push 2 ; fWinIni
push edi ; pvParam
push edi ; uiParam
push ebx ; uiAction
mov pvParam, eax
call esi ; SystemParametersInfoA
第八部分
loc_4019F2:
push [ebp+lpCmdLine]
call sub_40108C
cmp byte_4744B5, 1
jz short loc_401A0C
第九部分
cmp byte_4744B4, 1
jnz short loc_401A18
第十部分
loc_401A0C: ; fWinIni
push 2
push pvParam ; pvParam
push edi ; uiParam
push ebx ; uiAction
call esi ; SystemParametersInfoA
第十一部分
loc_401A18:
cmp [esp+170h+hLibModule], edi
mov esi, dword_4744C4
jz short loc_401A2E
第十二部分
push [esp+170h+hLibModule] ; hLibModule
call ds:FreeLibrary
第十三部分
loc_401A2E:
lea ecx, [esp+170h+var_150]
call sub_40F77E
lea ecx, [esp+170h+var_140]
call sub_40F77E
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 10h
_WinMain@16 endp
哪个部分是算法
[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界