邪恶八进制信息安全团队技术讨论组's Archiver

pub!1c 2006-1-17 20:21

[转载]去除WinRamTurbo时间限制

信息来源:看雪学院<br>文章作者:qduwg
<P><FONT face=宋体>题目:去除TotalControlPCversion2.0小组件的功能限制<BR>运行平台:Windows95/98/98SE/ME.<BR>软件功能:这是一款美国人写的小程序,让你调整/清理Windows95/98/98SE/ME,加速运行。提供了一个简单的界面,包含10个设置面板,定制你自己<BR><BR>的系统行为,添加/隐藏菜单,定制浏览器,修改系统或者驱动器图标,配置内存及关键设置,提高系统速度。另外还包括5个小组件:Sysclean系统垃<BR><BR>圾清理器;Shfix:删除无效快捷方式,Descol设置桌面颜色;Backsys文件和系统备份程序;Foldicons改变文件夹的图标。<BR>使用工具:trw,ultraedit,W32DASM,Peid<BR>破解目的:去除Sysclean系统垃圾清理器功能限制<BR><BR>引子:今天又装了这个小软件,看看是否有点文章做,结果真没有太大戏。这个软件是VB写的,没有加壳。主程序没有地方输入注册码。而且是在线注<BR><BR>册,但我不知从哪里下手,因为根本没有输入注册码的地方。我们来看看提供的小程序Sysclean系统垃圾清理器,实验了一下,查找垃圾很快,可是如<BR><BR>果想删除,立即弹出对话框告诉你,需要注册才可以使用这个功能。立即调出SOFTICE,下命令hwnd,找到句柄,比如xxxx,然后下bpxxxxxwm_destroy<BR><BR>,F5退出,结果死机,看来这个程序对SICE有防范,另外接着用OD加载,也是死机。用W32DASM加载OK。只好请来TRW了,按照上面所说,找对话框句柄<BR><BR>,然后下消息断点,F5退出,点击OK,被拦住。一次F11即可来到主程序空间,代码如下:<BR>*ReferenceTo:MSVBVM60.rtcMsgBox,Ord:0253h<BR>|<BR>:00424905FF157C104000Calldwordptr[0040107C]<BR>:0042490B8D4DA4leaecx,dwordptr[ebp-5C]//我们停在这里。查看前面是否有跳转指令可以跳过这个地方。<BR>下面是前面的代码:<BR>:0042484C0FBF053CD04200movsxeax,wordptr[0042D03C]<BR>:0042485385C0testeax,eax<BR>:004248550F84E5000000je00424940//我们可以找到这个地方,修改84->85。<BR>:0042485BC745FC03000000mov[ebp-04],00000003<BR>:00424862C7854CFFFFFF04000280movdwordptr[ebp+FFFFFF4C],80020004<BR>:0042486CC78544FFFFFF0A000000movdwordptr[ebp+FFFFFF44],0000000A<BR>:00424876C7855CFFFFFF04000280movdwordptr[ebp+FFFFFF5C],80020004<BR>:00424880C78554FFFFFF0A000000movdwordptr[ebp+FFFFFF54],0000000A<BR>:0042488AC7853CFFFFFFE8964000movdwordptr[ebp+FFFFFF3C],004096E8<BR>:00424894C78534FFFFFF08000000movdwordptr[ebp+FFFFFF34],00000008<BR>:0042489E8D9534FFFFFFleaedx,dwordptr[ebp+FFFFFF34]<BR>:004248A48D8D64FFFFFFleaecx,dwordptr[ebp+FFFFFF64]<BR><BR>*ReferenceTo:MSVBVM60.__vbaVarDup,Ord:0000h<BR>|<BR>:004248AAFF15E4114000Calldwordptr[004011E4]<BR>:004248B068DC954000push004095DC<BR>:004248B5680C884000push0040880C<BR><BR>*ReferenceTo:MSVBVM60.__vbaStrCat,Ord:0000h<BR>|<BR>:004248BAFF1550104000Calldwordptr[00401050]<BR>:004248C08BD0movedx,eax<BR>:004248C28D4DA4leaecx,dwordptr[ebp-5C]<BR><BR>*ReferenceTo:MSVBVM60.__vbaStrMove,Ord:0000h<BR>|<BR>:004248C5FF1510124000Calldwordptr[00401210]<BR>:004248CB50pusheax<BR>:004248CC6870964000push00409670<BR><BR>*ReferenceTo:MSVBVM60.__vbaStrCat,Ord:0000h<BR>|<BR>:004248D1FF1550104000Calldwordptr[00401050]<BR>:004248D789857CFFFFFFmovdwordptr[ebp+FFFFFF7C],eax<BR>:004248DDC78574FFFFFF08000000movdwordptr[ebp+FFFFFF74],00000008<BR>:004248E78D8D44FFFFFFleaecx,dwordptr[ebp+FFFFFF44]<BR>:004248ED51pushecx<BR>:004248EE8D9554FFFFFFleaedx,dwordptr[ebp+FFFFFF54]<BR>:004248F452pushedx<BR>:004248F58D8564FFFFFFleaeax,dwordptr[ebp+FFFFFF64]<BR>:004248FB50pusheax<BR>:004248FC6A30push00000030<BR>:004248FE8D8D74FFFFFFleaecx,dwordptr[ebp+FFFFFF74]<BR>:0042490451pushecx<BR>========================================================<BR>小结:这个程序太简单,功能也比较简单,去除限制也简单多了。修改这个地方后,设置的选项参数可以保存,可以轻松删除找到的垃圾文件。不再有<BR><BR>限制了。<BR><BR><BR>qduwg<BR><BR>2006年1月14日完成。<BR><BR>********************************************************************************<BR><BR>题目:去除WinRamTurbo时间限制<BR>软件功能:优化内存等。<BR><BR>工具:TRW,w32dasm,PEID,UltraEdit<BR><BR>引子:今天这是实验的又一个程序。结果是30天限制。没有注册码输入的地方,好象直接从其网站下载注册版的。拿PEID检查是<BR><BR>UPX0.89~1.02/1.05~1.24加壳,用UPX-d脱壳成功。是用BC++写的。这个软件对SOFTICE敏感,我只好用TRW了。把时间调快一个月,结果启动时先出现<BR><BR>一个SPLASH小窗口,显示版权信息,按OK后,接着出现第二个窗口提示过期,点OK则立即显示第三个大窗口,点OK结束。我们首先干掉第二个过期提示<BR><BR>框,用hwnd查看这个提示框的句柄,下断点bpxxxxxwm_destroy,按一次F11即可回到主程序内,来到这里。<BR>1.先去掉第2个NAG。<BR>004083F8|.7473JESHORTWINRAMTU.0040846D//这个可以跳过下面的CALL,74改为75.<BR>004083FA|.33D2XOREDX,EDX<BR>004083FC|.8B45D0MOVEAX,DWORDPTRSS:[EBP-30]<BR>004083FF|.8B80F8020000MOVEAX,DWORDPTRDS:[EAX+2F8]<BR>00408405|.E832F60400CALLWINRAMTU.00457A3C<BR>0040840A|.6830024E00PUSHWINRAMTU.004E0230<BR>0040840F|.8D9504FFFFFFLEAEDX,DWORDPTRSS:[EBP-FC]<BR>00408415|.52PUSHEDX<BR>00408416|.E8E9300B00CALLWINRAMTU.004BB504<BR>0040841B|.83C408ADDESP,8<BR>0040841E|.6A00PUSH0<BR>00408420|.FF3584D24C00PUSHDWORDPTRDS:[4CD284]<BR>00408426|.8D8D04FFFFFFLEAECX,DWORDPTRSS:[EBP-FC]<BR>0040842C|.51PUSHECX<BR>0040842D|.8B45D0MOVEAX,DWORDPTRSS:[EBP-30]<BR>00408430|.E807BA0500CALLWINRAMTU.00463E3C<BR>00408435|.50PUSHEAX<BR>00408436|.E80DC30B00CALL<JMP.&USER32.MessageBoxA>//这个CALL出现过期提示。<BR>0040843B|.8B45D0MOVEAX,DWORDPTRSS:[EBP-30]//我们停在这里。往前查看是否有地方跳过这里。<BR>==========================================<BR>2.重新启动,结果主界面出现了,但接着出现前面所说的第二个过期提示框。如果点OK,则退出。下bpxmessageboxa断点,重新启动程序,被拦住,按<BR><BR>F10来到这里。<BR>00404F99|.E82E1D0100CALLWINRAMTU.00416CCC<BR>00404F9E|.85C0TESTEAX,EAX<BR>00404FA0|.7463JESHORTWINRAMTU.00405005//这个可以跳过下面的CALL。74改为75。<BR>00404FA2|.6830024E00PUSHWINRAMTU.004E0230<BR>00404FA7|.8D95C8FEFFFFLEAEDX,DWORDPTRSS:[EBP-138]<BR>00404FAD|.52PUSHEDX<BR>00404FAE|.E851650B00CALLWINRAMTU.004BB504<BR>00404FB3|.83C408ADDESP,8<BR>00404FB6|.6A00PUSH0<BR>00404FB8|.FF3584D24C00PUSHDWORDPTRDS:[4CD284]<BR>00404FBE|.8D8DC8FEFFFFLEAECX,DWORDPTRSS:[EBP-138]<BR>00404FC4|.51PUSHECX<BR>00404FC5|.8B45D0MOVEAX,DWORDPTRSS:[EBP-30]<BR>00404FC8|.E86FEE0500CALLWINRAMTU.00463E3C<BR>00404FCD|.50PUSHEAX<BR>00404FCE|.E875F70B00CALL<JMP.&USER32.MessageBoxA><BR>00404FD3|.8B45D0MOVEAX,DWORDPTRSS:[EBP-30]//我们返回到此处,看前面哪个地方可以跳过这里。<BR>==========================================<BR>3.在退出程序的时候也有一个大NAG,而且软件作者故意让这个窗口出现在主程序窗口的后面,没有得到焦点,需要点击一下任务栏上的其他按钮,然后<BR><BR>再回来点击这个程序在任务栏上的按钮,才可以显示这个NAG,然后点击OK,退出程序。比较烦人的。现在我们就来把它拿掉好了。我也走了几个弯路,<BR><BR>最后才灵机一动,修改成功了。<BR><BR>首先是下断点的问题,用OD打开符号引用窗口,发现这个软件使用了MessageboxA和MessageBeep,我用这两个函数下断点不成功,换一个方法,点击退<BR><BR>出按钮,在这个NAG出现后用消息断点,我查看了句柄,使用了几个比较高级别的句柄下断点bpxxxxxwm_destroy,还是不成功,拦不住,接着来第三<BR><BR>个方法,用句柄下消息断点bpxxxxxwm_command,我以为点击窗口上的退出按钮时,可以被拦住,结果没有一点动静,更加激发了我非要搞掉它的信心<BR><BR>。继续琢磨了一会儿,突然灵机一动,我发现在这个软件内有一个函数EnableWindow,就用它下断点bpxEnableWindow,退出SOFTICE,启动程序,点击<BR><BR>退出按钮,OK!!被成功拦截到。随后我们按F10,一直来到如下代码处:<BR><BR>0044B557|.53PUSHEBX<BR>0044B558|.E80B900700CALL<JMP.&USER32.EnableWindow><BR>0044B55D|>83C8FFOREAX,FFFFFFFF//我们来到这里,上面这个CALL就是显示窗口的函数。<BR>0044B560|.5BPOPEBX<BR>0044B561|.5DPOPEBP<BR>0044B562\.C20800RETN8<BR>************<BR>我们F10跟踪一直来到下面代码空间,关键地方就在下面了。<BR>004512D3|.E890A2FFFFCALLWINRAMTU.0044B568<BR>004512D8|.8945F4MOVDWORDPTRSS:[EBP-C],EAX//从前面代码可以逐步来到这里!<BR>004512DB|.33D2XOREDX,EDX<BR>004512DD|.55PUSHEBP<BR>004512DE|.684C144500PUSHWINRAMTU.0045144C<BR>004512E3|.64:FF32PUSHDWORDPTRFS:[EDX]<BR>004512E6|.64:8922MOVDWORDPTRFS:[EDX],ESP<BR>004512E9|.8B45FCMOVEAX,DWORDPTRSS:[EBP-4]<BR>004512EC|.E83BFEFFFFCALLWINRAMTU.0045112C//这个CALL开始显示NAG的基本框架<BR>004512F1|.33D2XOREDX,EDX<BR>004512F3|.55PUSHEBP<BR>004512F4|.68AB134500PUSHWINRAMTU.004513AB<BR>004512F9|.64:FF32PUSHDWORDPTRFS:[EDX]<BR>004512FC|.64:8922MOVDWORDPTRFS:[EDX],ESP<BR>004512FF|.6A00PUSH0<BR>00451301|.6A00PUSH0<BR>00451303|.6800B00000PUSH0B000<BR>00451308|.8B45FCMOVEAX,DWORDPTRSS:[EBP-4]<BR>0045130B|.E82C2B0100CALLWINRAMTU.00463E3C<BR>00451310|.50PUSHEAX<BR>00451311|.E8B6340700CALL<JMP.&USER32.SendMessageA><BR>00451316|.8B45FCMOVEAX,DWORDPTRSS:[EBP-4]<BR>00451319|.33D2XOREDX,EDX<BR>0045131B|.89902C020000MOVDWORDPTRDS:[EAX+22C],EDX<BR>00451321|>8B03/MOVEAX,DWORDPTRDS:[EBX]//循环体开始,制造NAG。<BR>00451323|.E8382D0000|CALLWINRAMTU.00454060<BR>00451328|.8B03|MOVEAX,DWORDPTRDS:[EBX]<BR>0045132A80B88400000000cmpbyteptr[eax+00000084],00//这行和下面这行可以做点文章的地方了。<BR>00451331740Fje00451342//让这里跳到循环体后面即可。具体修改见后面。<BR>00451333|.8B45FC|MOVEAX,DWORDPTRSS:[EBP-4]<BR>00451336|.C7802C02000002000000|MOVDWORDPTRDS:[EAX+22C],2<BR>00451340|.EB14|JMPSHORTWINRAMTU.00451356<BR>00451342|>8B45FC|MOVEAX,DWORDPTRSS:[EBP-4]<BR>00451345|.83B82C02000000|CMPDWORDPTRDS:[EAX+22C],0<BR>0045134C|.7408|JESHORTWINRAMTU.00451356<BR>0045134E|.8B45FC|MOVEAX,DWORDPTRSS:[EBP-4]<BR>00451351|.E826FDFFFF|CALLWINRAMTU.0045107C<BR>00451356|>8B45FC|MOVEAX,DWORDPTRSS:[EBP-4]<BR>00451359|.8B802C020000|MOVEAX,DWORDPTRDS:[EAX+22C]<BR>0045135F|.85C0|TESTEAX,EAX<BR>00451361|.^74BE\JESHORTWINRAMTU.00451321//循环体结束。在这个循环体内一点一点地取窗口内容显示到前面的那<BR><BR>个NAG窗体内。现在就是要把这个循环体跳过去。<BR>00451363|.8945F8MOVDWORDPTRSS:[EBP-8],EAX//上面循环体显示窗口结束,来到这里。等你按按钮。如果按OK按钮,<BR><BR>则EAX=1,则下面代码就是退出程序。还有一个purchase(购买)按钮,则EAX=2。<BR>00451366|.6A00PUSH0<BR>00451368|.6A00PUSH0<BR>0045136A|.6801B00000PUSH0B001<BR>0045136F|.8B45FCMOVEAX,DWORDPTRSS:[EBP-4]<BR>00451372|.E8C52A0100CALLWINRAMTU.00463E3C<BR>我在跟踪的时候注意到循环结束后,NAG出现,如果你点击OK,则重新被断下,来到00451363,EAX的值为1。所以,我们修改前面的跳转的时候,一定<BR><BR>记得给EAX赋值为1。因为后面的函数需要这个参数。所以前面的那个跳转指令修改成下面这个样子了:<BR>0045132AB801000000MOVEAX,1<BR>0045132F90NOP<BR>0045133090NOP<BR>00451331EB30JMPSHORTWINRAMTU.00451363<BR>原来的程序代码指令空间刚好可以修改成新指令,绰绰有余啊!非常棒!立即用ULTRAEDIT修改吧!然后另行改名保存文件,以防你修改失败哟!!现在<BR><BR>启动程序运行,然后关闭,OK!没有NAG了,非常干脆利落的关掉了。<BR>附一个失败方案:本来想从4512D8处把指令直接修改为JMP451359,同时451359和45135A处修改为MOVEAX,1,结果程序无法启动了,而且导致死机了<BR><BR>。我知道在4512D8到00451321之间的代码是必须的,不可以掠过去的。所以修改程序无法预见具体结果,必须实验再实验。<BR>==========================================<BR>4.现在已经启动已经没有问题了,不过在启动时还有一个小NAG,随着上面对最后一个大NAG的去除,我发现启动的时候第一个SPLASH版权窗口自动一闪<BR><BR>而过,不再停在那里等你按OK了。好生奇怪啊!这是修改的副产品!捎带把第一个也消除了。实属必然!!破解不是目的,知道如何破解才是重要的。<BR><BR>我觉得还是研究一下如何把它去掉。<BR>用SOFTICELOADER加载程序,F10跟踪到下面004BFA87处出现版权信息窗口,下断点,然后再次加载程序,F5退出SOFTICE,被拦住在004BFA87处,F8<BR><BR>跟入,部分跟踪代码在后面。<BR>004BFA81|.E83A450000CALL<JMP.&KERNEL32.GetModuleHandleA><BR>004BFA86|.50PUSHEAX<BR>004BFA87|.FF5618CALLDWORDPTRDS:[ESI+18]//这个CALL出那个SPLASH。:[ESI+18]的值为4012C0。<BR>004BFA8A|.83C410ADDESP,10<BR>004BFA8D|.50PUSHEAX<BR>004BFA8E|.E8BDF4FFFFCALLWINRAMTU.004BEF50<BR>004BFA93|.59POPECX<BR>004BFA94|.EB21JMPSHORTWINRAMTU.004BFAB7<BR>004BFA96|>8B15E8894E00MOVEDX,DWORDPTRDS:[4E89E8]<BR>004BFA9C|.52PUSHEDX<BR>004BFA9D|.8B0DE4894E00MOVECX,DWORDPTRDS:[4E89E4]<BR>004BFAA3|.51PUSHECX<BR>004BFAA4|.A1E0894E00MOVEAX,DWORDPTRDS:[4E89E0]<BR>004BFAA9|.50PUSHEAX<BR>004BFAAA|.FF5618CALLDWORDPTRDS:[ESI+18]//这个CALL出那个SPLASH。<BR>004BFAAD|.83C40CADDESP,0C<BR>我们F8跟入前面那个CALL,用F10沿着下面这个路径跟踪:<BR>00401554.8B0D94E44D00MOVECX,DWORDPTRDS:[4DE494]<BR>0040155A.8B01MOVEAX,DWORDPTRDS:[ECX]<BR>0040155C.8B0D58E44D00MOVECX,DWORDPTRDS:[4DE458]<BR>00401562.8B15749D4C00MOVEDX,DWORDPTRDS:[4C9D74]<BR>00401568.E8072C0500CALLWINRAMTU.00454174//这个CALL用F8切入跟踪,F10则出现窗口。<BR>0040156D.A194E44D00MOVEAX,DWORDPTRDS:[4DE494]<BR>00401572.8B00MOVEAX,DWORDPTRDS:[EAX]<BR>00401574.E87B2C0500CALLWINRAMTU.004541F4<BR>00401579.66:C745C40000MOVWORDPTRSS:[EBP-3C],0<BR>0040157F.EB1BJMPSHORTWINRAMTU.0040159C<BR>******************<BR>顺其自然,我们来到下面代码处:<BR>0040FF13|.8B10MOVEDX,DWORDPTRDS:[EAX]<BR>0040FF15|.A178E44D00MOVEAX,DWORDPTRDS:[4DE478]<BR>0040FF1A|.8B08MOVECX,DWORDPTRDS:[EAX]<BR>0040FF1C|.8B81D8020000MOVEAX,DWORDPTRDS:[ECX+2D8]<BR>0040FF22|.E8B9E10400CALLWINRAMTU.0045E0E0<BR>0040FF27|.FF4DECDECDWORDPTRSS:[EBP-14]<BR>0040FF2A|.8D45FCLEAEAX,DWORDPTRSS:[EBP-4]<BR>0040FF2D|.BA02000000MOVEDX,2<BR>0040FF32|.E839390B00CALLWINRAMTU.004C3870<BR>0040FF37|.8B0D78E44D00MOVECX,DWORDPTRDS:[4DE478]<BR>0040FF3D|.8B01MOVEAX,DWORDPTRDS:[ECX]<BR>0040FF3F|.8B10MOVEDX,DWORDPTRDS:[EAX]<BR>0040FF41|.FF92CC000000CALLDWORDPTRDS:[EDX+CC]//这个CALL出现版权窗口,F8跟入。:[EDX+CC]的值为4511DC。这段代码其<BR><BR>实就是前面第3部分所述的代码段了。说明2个窗口都调用同样的一个函数啦!部分节选如下:<BR>******************<BR>004511DC/.55PUSHEBP<BR>004511DD|.8BECMOVEBP,ESP<BR>004511DF|.83C4E0ADDESP,-20<BR>004511E2|.53PUSHEBX<BR>004511E3|.56PUSHESI<BR>004511E4|.33D2XOREDX,EDX<BR>004511E6|.8955E0MOVDWORDPTRSS:[EBP-20],EDX<BR>004511E9|.8945FCMOVDWORDPTRSS:[EBP-4],EAX<BR>*省去260多行代码<BR>004512D3|.E890A2FFFFCALLWINRAMTU.0044B568<BR>004512D8|.8945F4MOVDWORDPTRSS:[EBP-C],EAX<BR>004512DB|.33D2XOREDX,EDX<BR>004512DD|.55PUSHEBP<BR>004512DE|.684C144500PUSHWINRAMTU.0045144C<BR>004512E3|.64:FF32PUSHDWORDPTRFS:[EDX]<BR>004512E6|.64:8922MOVDWORDPTRFS:[EDX],ESP<BR>004512E9|.8B45FCMOVEAX,DWORDPTRSS:[EBP-4]<BR>004512EC|.E83BFEFFFFCALLWINRAMTU.0045112C//这个CALL出现版权窗口。同样关闭程序时的那个BIGNAG也调用这个函数<BR><BR>显示主框架,如前所述。<BR>下面我给出另外一个简单的解决办法,就是把下面这个消息循环切断,不让它循环即可,最后两个NAG统统一闪即逝,根本影响不了什么了。:)<BR>00451321|>8B03/MOVEAX,DWORDPTRDS:[EBX]<BR>00451323|.E8382D0000|CALLWINRAMTU.00454060<BR>00451328|.8B03|MOVEAX,DWORDPTRDS:[EBX]<BR>0045132A80B88400000000CMPBYTEPTRDS:[EAX+84],0<BR>00451331740FJESHORTWINRAMTU.00451342<BR>00451333|.8B45FC|MOVEAX,DWORDPTRSS:[EBP-4]<BR>00451336|.C7802C02000002000000|MOVDWORDPTRDS:[EAX+22C],2<BR>00451340|.EB14|JMPSHORTWINRAMTU.00451356<BR>00451342|>8B45FC|MOVEAX,DWORDPTRSS:[EBP-4]<BR>00451345|.83B82C02000000|CMPDWORDPTRDS:[EAX+22C],0<BR>0045134C|.7408|JESHORTWINRAMTU.00451356<BR>0045134E|.8B45FC|MOVEAX,DWORDPTRSS:[EBP-4]<BR>00451351|.E826FDFFFF|CALLWINRAMTU.0045107C<BR>00451356|>8B45FC|MOVEAX,DWORDPTRSS:[EBP-4]<BR>00451359|.8B802C020000|MOVEAX,DWORDPTRDS:[EAX+22C]<BR>0045135F|.85C0|TESTEAX,EAX<BR>00451361|.^74BE\JESHORTWINRAMTU.00451321//只改动半个字节即可,74->75,OK。循环链条被切断,程序继续往下<BR><BR>走,看它还显示NAG骚扰我们。嘿嘿!:)收工!休息!<BR>==========================================<BR>后记:我忙里偷闲终于把这个东西搞定了,现在运行起来真是清爽怡人啊!赶紧写出破文,分享我的快乐吧!当然能够带给你小小的经验和启发,那真<BR><BR>是求之不得的事情了!最近看到许多热心大侠关注我的教程,也许他们从中收获了点什么,也是给我最大的安慰和鼓励,自己的辛苦算不了什么了!激<BR><BR>励我写完一个还想下一个!再次感谢各位CRACKER道路上的盟友们!!同时也感谢看雪论坛各位高手的文章!你们的文章就是我们进步的阶梯!!<BR>我也是在向高手层次冲击的一个“敢死队员”。希望我们的目标早日实现!!<BR><BR>这个软件功能一般,但是搞了那么多的NAG,烦煞人也!不除掉不为快!!:)不过有点小遗憾,因为版权NAG和退出时的NAG及主窗口都共享同一段代码<BR><BR>,通过消息传递实现窗口显示,所以牵一发而动全身。上面的修改虽然去掉了NAG,但是同时也使得2个按钮功能失效,幸亏这2个按钮的功能不重要,去<BR><BR>掉也就去掉也。:)本来想搞个注册码算法分析,结果没有收获,却收获了上面这些东西。也算不错啦!!进步也需要时间和经验!慢慢来!高手不是<BR><BR>一天铸就的,长城不是一天垒起的!</FONT><BR></P>

页: [1]
© 1999-2008 EvilOctal Security Team