精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● 计算机安全>>◆破解技巧◆>>原创了一篇破解教程

主题:原创了一篇破解教程
发信人: 97d( )
整理人: williamlong(2003-07-20 22:56:27), 站内信件
写在开头,我不是有意破解北京朔日科技公司的【帮您学习】 CC 1.0软件,我是该软件的正版用户。该软件我可以正常安装,但是运行的时候,提示要我插入钥匙盘,可是无论A盘还是B盘,都不能通过【帮您学习】 CC 1.0程序的验证。在给北京朔日科技公司发出Email咨询未得回复的情况之下,我采取了破解行为。

声明:请使用我破解程序的人不得把此破解程序用于一切形式的商业行为!由此引发的一切不良后果,与作者无关。此文章仅供破解爱好者研究、学习使用。

我在这次破解行动中使用的工具是TRW2000(汉化版V1.22)和UltraEdit(V10.0)
首先用TRW2000打开HelpYourself.exe,按了几下F10来到这里


01AF:00474596   CALL   KERNEL32!GetTickCount(调用Windows 32位API函数,取得系统时钟)
01AF:0047459B   TESE   EAX,EAX
01AF:0047459D   JNS    004745A4
01AF:0047459F   CALL   00402DFD
01AF:004745A4   MOV    [0047CBD0],EAX
01AF:004745A9   MOV    EAX,[0047CBD0]
01AF:004745AE   MOV    [0047CBD4],EAX
01AF:004745B3   MOV    DWORD[0047CB08],01
01AF:004745BD   MOV    EAX,0047484C
01AF:004745C2   CALL   0044FEBD            (调用自定义函数,检测软驱是否为空)
01AF:004745C7   TEST   AL,AL               (比较数值,看软驱是否为空)
01AF:004745C9   JZ     00474612            (如果为空,跳到其他地方,给出出错信息)
01AF:004745CB   CALL   MSFH643!SowerHelp  (调用自定义函数,内部有三个Windows函数:CreatFileA(建立、打开或截断文件),DeviceIoControl(读软驱), FindCloseChangeNotification(关闭文件或目录))
01AF:004745D0   DEC    EAX                 (比较是否是钥匙盘)
01AF:004745D1   JNZ    004745E0            (如果不是,跳转到其他地址,给出出错信息)
01AF:004745D3   CALL   004561A8
01AF:004745D8   TEST   AL,AL               (比较是否是钥匙盘)
01AF:004745DA   JNZ    NEAR  00474664      (如果是,跳走,执行程序;如不是,往下执行给出错信息)
01AF:004745E0   CMP    DWORD[0047CBD8],BYTE+03
01AF:004745E7   JZ     NEAR   0047483E
01AF:004745ED   PUSH   BYTE+41
01AF:004745EF   PUSH   DWORD 00474850
01AF:004745F4   PUSH   DWORD 00474858
01AF:004745F9   MOV    EAX,[00476090]
01AF:004745FE   MOV    EAX,[EAX]
01AF:00474600   MOV    EAX,[EAX+24]
01AF:00474603   PUSH   EAX
01AF:00474604   CALL   USER32!MessageBoxA (出错信息,请插入钥匙盘)






01AF:004745D1   JNZ    004745E0  
这里必须要改,如果不改就跳到出错信息了。在TRW2000里用CODE ON,显示其机器码为750D,然后用UltraEdit打开HelpYourself.exe,查找到750D,但是即使是把75改为74(即JNZ改为JZ),在TRW2000离跟踪一了下,仍然跳转到出错的地方,索性把750D改为9090(就是两个空指令NOP),不让它工作,就可以往下进行了

现在到了
01AF:004745D3   CALL   004561A8            (机器码750D)
01AF:004745D8   TEST   AL,AL               (机器码84C0)
01AF:004745DA   JNZ    NEAR  00474664      (机器码0F8584000000)
前两条都让我改为了9090,最后的JNZ被我改成无条件跳转指令NOP+JMP(机器码90E984000000)




改到这里,程序就可以脱离钥匙盘正常运行了,但是每次启动的时候,都需要读一下软驱,挺不爽的,把它改掉!往前看,只需要把下面代码的机器码改为90,启动程序的时候就不读软驱了

01AF:004745C2   CALL   0044FEBD            (机器码E8E9B8FDFF)
01AF:004745C7   TEST   AL,AL               (机器码84C0)
01AF:004745C9   JZ     00474612            (机器码7447)
01AF:004745CB   CALL   MSFH643!SowerHelp  (机器码E8E8FCFFFF)



还有一个问题,退出程序的时候,总是显示北京朔日科技公司制作人员的名字,挺让人讨厌的,干掉它!
用TRW2000的bpx Lockmytask设置断点拦截按键的动作,当用鼠标点击退出的时候,TRW2000拦截弹出,按若干下F10,跟踪到了0046F857:CALL ——————(机器码为FF92CC000000),一执行这个地方就显示制作人员名单,改为909090909090,世界终于清静了!


最后还有一个问题,WORD和EXCEL的上机题不能作,提示没有安装WORD97和EXCEL97,妈的,现在都用OFFICE 2000和OFFICE XP了,还让我装OFFICE 97?没门!!

这次用的是Regmon版本v4.35,先打开Regmon,再运行“帮您学习”,做EXCEL上机题,提示请重新安装EXCEL97。回Regmon,看看捕捉到了什么东西?其中的Excel.Application.8\Clsid(default)引起我的注意,鼠标双击一下,Regmon自动开打regedit,来到了HKEY_CLASSES_ROOT\Excel.Application,于是我手工添加主键Excel.Application.8,其下再添加主键Clsid,双击健值“默认”,参考Excel.Application.10\Clsid下“默认”的健值,粘贴进去。

再做EXCEL的题,顺利进入!WORD参考EXCEL的方法,就可以了。我装的是OFFICE XP,估计版本号是10,而OFFICE 2000的版本号是9,OFFICE 97的版本号就是8了。


到此修改工作完毕,增长了一些破解经验,呵呵~~~~~~~
                            

                                                                            jiaxu2000
                                                                            
                                                                                2003.3.27  14:15



----
 



百无一用是书生。  

[关闭][返回]