中国汉化 - www.shanse8.com

直接加微信

鼠标放在右下面微信图标上,会弹出微信二维码

扫描二维码访问中国汉化官网移动版

成就您每时每刻您所需要的

扫一扫,加微信好友

可直接咨询与求助

-->

【原创】破解软件的基础,调试软件OD详细教程! [复制链接]

  • 19213阅读
  • 31回复
离线 xinje
楼主  发表于: 2010-06-08 只看楼主 倒序阅读
0F

中国汉化网提醒您:

原创】破解软件的基础,调试软件OD详细教程 |?i-y3N  
今天挺没意思,作图累了,玩魔方也累了。突然发现了一个电脑上模拟魔方的游戏,很不错可惜弹出个网页挺烦人!改掉它! eBlVb*nmq  
很多朋友希望破解软件来汉化,可是总找不到切入点。下面就我给大家写了一篇我破解这个游戏的详细教程。由浅入深,如果大家需要,我可以写更复杂一些的破解教程。 H<Ed"-n$I<  
   q!t_qX7u  
必备的软件:
OLLYDBG  到处都有,我就不提供下载了。 $ nx&(V  
被破解的游戏:魔方游戏【在三楼下载】 "at*G>+  
     L*"Q5NzB]  
                           我是华丽的分割线              [s:404]  [s:404]  [s:404]  [s:404]  [s:404]  [s:404]  [s:404]   Mnn\y Tblp  
OD破解初探,去掉程序中弹出网页窗口。 hWP$U  
  
|W[BqQIf  
>j%HVRW  
     
魔方游戏,运行此魔方游戏,会发现弹出IE并打开作者的主页空间。我们想去掉这个弹出的网页。很多人觉得从16进制编辑器中去掉相应的字符串不就可以了吗?其实去掉字符串是可行的,但是如何去掉,去掉哪部分。我们就需要调试程序了。 w)2X0ev"  
OD
是现在比较流行的调试程序之一,全称:OLLYDBG,以下我们简称OD K&0'@#bE\  
打开OD,按F3加载魔方游戏主程序:MAGIC.EXE,此时OD会停留在0040AA52处,并且暂停。 5|._K(M  
IxNY%&* `  
  
zZ@]Kq;.s  
    可是我们如何下断点,如何知道什么地方时弹出IE的代码呢?弹出网页,必然有网址,程序中必然会出现网址的字符串。而且必然是文本形式存在的。所以我们搜索字符串是最简单有效的方法。 (,z0V+ !  
我们可以在任意地方单击右键,在菜单中找到搜索字符串的选项。如图: bKRz=$P?  
  
w 4-E@>%  
    
J{<,V\t)  
c((^l&  
之后会弹出字符串列表,很轻松的找到敏感词汇: +o^b ,!  
    
-b'93_ZTu:  
      
.hd<,\nW  
正是弹出的网络地址。 tai  
只要双击此处的字符串,就会在CPU界面中跟随过去。这里就是关键代码了。 DY<Br;  
我们顺便单击再004087A9处按F2下断点。这样运行时会在这里停下来,以便我们以后的修改。在这里下断,是因为上面的CALL刚刚运行完成,这里正是另一组子程序的开始。  0].*eM  
      
7[aSP5e>T  
        
0tV"X  
|_7nvck  
不懂汇编?没关系。我们从0开始学。如果你有基础那最好了,最好还有点WINDOWS API的知识,这个是windows应用程序接口。不过不懂也没关系,跟我做,你就慢慢会明白。 pI*/ - !I  
ShellExecuteA
我们可以看到这样的词汇,这个就是API函数。前面的IsShownDefDir等都是他的参数。其实这些并不太重要,重要的是ShellExecuteA是干什么的。可以在百度里搜索一下。可以找到很多关于ShellExecuteA的知识:“ShellExecuteA,查找与指定文件关联在一起的程序的文件名 非零表示成功,零表示失败。会设置GetLastError #SWL$Vm>  
这里ShellExecuteA的意思是查找关于网页关联的程序。OPEN(这里是ShellExecuteA的参数)他。大家明白了吧。只要跳过这段代码就可以屏蔽了。可是如何屏蔽呢?乱改会对程序造成影响。一步一步进行:  O+D"7  
eTi r-7  
第一次尝试,直接干掉ShellExecuteA,此时运行时没有问题,结束程序时会出错。基本上这中方法可行,但不完美。 @k.j6LKbc  
004087C0 |. FF15 2CA14100 call dword ptr[<&SHELL32.ShellExecut>; ShellExecuteA J*@(rb#G  
这一行用的是CALL,我们直接双击汇编命令部分:call dword ptr [<&SHELL32.ShellExecut>,就会弹出对话框,让你更改汇编代码。我们输入“nop”来干掉他。这里nop是指无操作,忽略后继续运行。 OFS` ?>  
此时已经修改完成,验证程序:按F9运行程序,会发现不弹网页了,退出时有错误。 w783e  
eO<:X|9T  
第二次修改。退出错误,是因为CALL没有了。前面设置的值已经被写到内存,等待CPU处理,CALL被去掉后,这些值一直保存着。在运行其他代码时反而调用了这些值,就会出现错误。 P8#;a  
既然使其他代码出错,那么就一并干掉他们。 NUiNn 7C  
        
3'(w6V  
          
gm;6v30e  
       t-#Y6U}b+  
     Vj.5b0/(  
   v&CKtk!3{  
_SS6@`X  
v&:R{  
[ 此帖被xinje在2010-06-08 01:59重新编辑 ]
1条评分
admin 金币 +10 加分鼓励 2010-06-08
分享到
离线 xinje
发表于: 2010-06-08 只看该作者
1F
wUS w 9xg  
框选需要改的代码,右键菜单中用NOP把他们都填充掉。所有的都无操作了,自然不会有值保留在内存了。此时运行程序,发现非常完美了! &]KA%Db2  
+I.{y  
当然,你可以用一个更简单的汇编代码来跳过此处: *MCkezW7{  
004087AF处代码改为:JMP 004087C6。这样运行到此处的时候便跳转到004087c6处。达到相同的效果。 IV`+B<3  
{|q(4(f"Iu  
最后保存代码,直接单击右键,菜单中找到保存代码的选项。 uH} }z!  
nG| NRp  
选择“复制所有修改”后,会弹出新的窗口。 7*Gg#XQ>(  
NrcxuItkYn  
R8, g^N  
随意处点击右键,找到保存文件。选择位置保存就好了。最好不要替换! 7  nawnS  
#ChF{mh  
到这里我们完美的去掉了弹出网页,不信你也来试试吧。哇哈哈。 io$fL_R=  
离线 xinje
发表于: 2010-06-08 只看该作者
2F
有兴趣的朋友可以多交流。
附件: 3D魔方游戏.rar (1990 K)更新于: 2010-06-08 01:56:22下载次数: 124[ 下载方法 ]
离线 chengman
发表于: 2010-06-08 只看该作者
3F
这也行?
离线 golconda
发表于: 2010-06-08 只看该作者
4F
谢谢,我想破解一些要注册的软件。
离线 fyadmm
发表于: 2010-06-08 只看该作者
5F
看不懂啊
离线 strongcloud
发表于: 2010-06-08 只看该作者
6F
这样也叫详细教程啊
离线 刘禹
发表于: 2010-06-08 只看该作者
7F
不懂
离线 736486704
发表于: 2010-06-09 只看该作者
8F
看的头晕
离线 junwuke02
发表于: 2010-06-10 只看该作者
9F
强大 太强大了 感谢
快速回复
限150 字节
温馨提示:欢迎交流讨论,请勿“纯表情、纯引用”!
 
上一个 下一个
      你的浏览器不支持js脚本,无法发帖,请修改浏览器设置,支持js脚本并刷新页面后再发帖!
      欢迎光临中国汉化网

      登录后更精彩!

      下拉
      使用快捷登录 或 免费注册