发信人: 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
----
百无一用是书生。 |
|