此破解方法是我为了破解一个.txt重启验证,而上网搜索相关资料,教程等方法看到的
看过了好几个相关教程,其中有ini重启验证,时间验证,远程服务器验证等
其中这个比较详细,希望对新手有帮助
附件为录相教程,软件等打的包
论坛传不上大的文件,我去找个空间放好后再发附件
知识点:
重启验证的要么是注册表重启验证,要么是文件验证
注册表验证没有什么好说的。用注册表监视工具搞定了,看看注册信息保存到哪里,是明码保存,还是加密保存。
文件验证又分好多种,如:dll文件,ini文件,dat文件,txt文件,cfg文件等等。
文件验证的文件保存的地方有几种:
1.是保存到软件安装目录
2.是c:\WINDOWS文件夹
3.是c:\WINDOWS\SYSTEM32文件夹
我们分析的时候一般是先去软件安装目录内找文件验证常用的文件,这个文件一般很小,很少会超过10 KB
所以大家就看小于10 KB以下的,大于的都不用看,
------------------------------------------------------------------------
这个软件的注册信息是保存在" Pttams.ini "这个ini文件按里了,我们看一下内容。
这个是我破解好的,给大家演示一下
大家看到了吧,经过测试我们发现Code=后面的内容如果是注册的是保留的,如果软件验证没有注册,
Code=后面就什么也没有。
我们来下INI文件断点,运行程序。出现了一次异常,我们shift+F9,
程序中断了。先清除断点,然后我们“反汇编窗口中跟随”向上找段首,下断点,运行程序。
观察寄存器,当EXC=code,EDX=REG的时候,我们F8跟,跟飞了,我们重来。
大家看到了吗?
00893D8C . B9 28488900 mov ecx,unpacked.00894828 ; ASCII "Code"
00893D91 . BA 08488900 mov edx,unpacked.00894808 ; ASCII "Reg"
00893D96 . 8B45 D4 mov eax,dword ptr ss:[ebp-2C]
00893D99 . 8B18 mov ebx,dword ptr ds:[eax]
00893D9B . FF13 call dword ptr ds:[ebx]
00893D9D . 8B85 7CFFFFFF mov eax,dword ptr ss:[ebp-84]
我们继续F8跟
又飞了
我们从来,把Code=后面写上123456
然后我们在调试。
00893DAB . 837D 80 00 cmp dword ptr ss:[ebp-80],0
00893DAF 0F84 28030000 je unpacked.008940DD ; 这里是不能跳的。
堆栈 ss:[0012FD78]=01BE15D0, (ASCII "123456"),大家看到了吗?如果Code=后面什么也没有,那么ss:[0012FD78]=00000000
然后跳转实现,跳向未注册,这里我们刚才让Code=123456,所以,跳转没有实现。
我们继续F8跟
00893E48 . 8BD8 mov ebx,eax
00893E4A . 8D43 01 lea eax,dword ptr ds:[ebx+1] ;给eax赋值,通过分析我们要让eax的值大于四,
;修改代码lea eax,dword ptr ds:[ebx+4]
00893E4D . 83F8 04 cmp eax,4 ;eax的值和4比较
00893E50 . 7D 37 jge short unpacked.00893E89 ;如果大于4,就实现跳转,否则不跳就执行打开网页的操作
00893E52 . 6A 05 push 5 ; /IsShown = 5
00893E54 . 6A 00 push 0 ; |DefDir = NULL
00893E56 . 6A 00 push 0 ; |Parameters = NULL
00893E58 . 68 C0488900 push unpacked.008948C0 ; |FileName = "http://www.qzcc.com/register.html"
00893E5D . 68 E4488900 push unpacked.008948E4 ; |Operation = "OPEN"
00893E62 . 6A 00 push 0 ; |hWnd = NULL
00893E64 . E8 C7CABAFF call <jmp.&shell32.ShellExecuteA> ; \ShellExecuteA
来到这里,我们一看这里就不能跳。为什么呢?ASCII "Register"跳的话就不执行注册了。
00893F17 . E8 4421B7FF call unpacked.00406060
00893F1C . 0F85 DC000000 jnz unpacked.00893FFE ;nop掉
00893F22 . 6A 00 push 0
00893F24 . 8D85 50FFFFFF lea eax,dword ptr ss:[ebp-B0]
00893F2A . 50 push eax
00893F2B . B9 F4478900 mov ecx,unpacked.008947F4 ; ASCII "Register",中文意思是'注册的'
00893F30 . BA 08488900 mov edx,unpacked.00894808 ; ASCII "Reg"
这一步改过之后就可以F9,运行程序了,我刚才多跟了几步,为了让大家看明白,
看到了吗,显示注册了。我们保存一下,晕,程序运行了,保存不了,我们重新来一遍吧
呵呵,浪费大家时间了,刚此没看懂的在看一遍,我这次的操作会快一点了
好了。我们来做一个实验,Code=123456,我们去掉123456,看看会这么显示,显示未注册,所以,
Code=123456这个很关键,
我们来做一下破解补丁吧,
测试一下补丁好用不,看来补丁成功了。不知道大家注意到没有,打“文件补丁”的时候,只要要补丁的内容已经存在
他就会提示你“文件已存在,是否覆盖”很烦人,所以我做了一个去掉这个提示的补丁。
dup.2.17去除文件已存在提示.exe
把要补丁的文件改名为:patch.exe,要在同一目录内,只对dup2.17版本有效。
我们试试,还提示不。不提示了。呵呵。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课