• 标 题:申请加入BCG第二篇:简单注册ResScope1.35 (1千字)
  • 作 者:pzero
  • 时 间:2001-10-6 22:08:02
  • 链 接:http://bbs.pediy.com

软件简介:
    ResScope VER 1.35 - 极强的软件资源分析和编辑工具,作者的另外一个程序FreeRes前面的文章已经讨论过了。
    下载地址:http://go6.163.com/restools/rs010909.zip
破解目的:找出注册码。
工具:Trw2000 1.22
    原exe文件是加壳的,用fi可以看出来,用相应的程序可以去掉壳。
    程序在你输入注册码后并不马上进行计算比较,而是把你输入的注册名和注册码存储在注册表里,那在什么时候才进行比较呢?这就是破解的关键所在了,找到这个地方,破解也就成功了一半!程序是在这个时候进行比较的:你点击Help菜单的时候,具体如下:
    启动程序,输入注册名字和注册码,确定。
    Ctrl+N 呼出Trw2000
    bpx regqueryvalueexa 下断点
    f5 返回程序
    点击程序 Help 菜单,“啪”断下来了吧!!
    bc * 清除断点
    pmodule 返回程序领空
    慢慢按 F10 来到如下地方,(你可以一直下D命令,看到程序在读注册表的reguser和regcode吧?)
    ……
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004B9B49(C)
|
:004B9B5B 8B45F0        mov eax, dword ptr [ebp-10] ;<-输入的假注册码
:004B9B5E E87DA3F4FF    call 00403EE0
:004B9B63 83F828        cmp eax, 00000028  ;<-注册码的长度40
:004B9B66 7538          jne 004B9BA0    ;<-不等就跳,注册失败
:004B9B68 8B45F4        mov eax, dword ptr [ebp-0C]
:004B9B6B E870A3F4FF    call 00403EE0
:004B9B70 85C0          test eax, eax
:004B9B72 7E2C          jle 004B9BA0
:004B9B74 68338C0000    push 00008C33
:004B9B79 8D45EC        lea eax, dword ptr [ebp-14]
:004B9B7C 50            push eax
:004B9B7D B982310000    mov ecx, 00003182
:004B9B82 BAD5030000    mov edx, 000003D5
:004B9B87 8B45F4        mov eax, dword ptr [ebp-0C]
:004B9B8A E80DFCFFFF    call 004B979C
:004B9B8F 8B45EC        mov eax, dword ptr [ebp-14] ;<-真注册码
:004B9B92 8B55F0        mov edx, dword ptr [ebp-10] ;<-假注册码
:004B9B95 E856A4F4FF    call 00403FF0  ;<-比较过程
:004B9B9A 7504          jne 004B9BA0  ;<-不等就跳,注册失败
:004B9B9C C645FF01      mov [ebp-01], 01
    ……
    到此,注册码已经成功获得,还是收工吧(太懒了吧?),没办法,我本来就是懒虫嘛,呵呵……