首页
社区
课程
招聘
[旧帖] [讨论]破解ini文件重启验证(邀请码已发) 0.00雪花
发表于: 2009-12-15 00:05 1868

[旧帖] [讨论]破解ini文件重启验证(邀请码已发) 0.00雪花

2009-12-15 00:05
1868
此破解方法是我为了破解一个.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版本有效。
我们试试,还提示不。不提示了。呵呵。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 334
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Delphi写的
2009-12-18 16:49
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
附件呢??很想看看
2009-12-18 19:53
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这么好拿邀请码的啊
改天我把我改的软件 的注册方式贴出来
我汗.
2009-12-19 23:38
0
游客
登录 | 注册 方可回帖
返回
//