找回密码
 注册
搜索
热搜: 回贴

个人学习SMC的一点体会(2千字),SMC,补丁技术

2010-1-30 18:28| 发布者: admin| 查看: 174| 评论: 0|原作者: 小可爱


个人学习SMC的一点体会(2千字),SMC,补丁技术
2008年06月23日 星期一 下午 09:25
个人学习SMC的一点体会--回答dREAMhTEATER兄



以下这一段是给那些经常在论坛中点播软件的人看的。

我学习破解约10个月,开始是从看了D版光碟中OSCAR10.1中的HELP开始的,后来就是YHQ,ERRORFREE等的文章。真正的学习主要来自于看雪论坛上诸君文章的教诲,以及后来从FRAVIA等处得到的教学文章。所以我也将自己所得回报给论坛各位,希望能有所助益。因为我是通过自学来获得知识,同时我相信别人也是基本如此,所以我遵循传统,除非你对破解中的具体问题有疑问,我才会尽我所能来回答。



下面是关于学习SMC的一点体会。

至今我尝试了2次SMC破解,感觉这是一个PERFECT IDEA,但可能只在去除NAG等单一方面比较有用。



第一次是尝试《有声有色3.10》,参考的是《iNLiNE pATCHiNG A pROGRAM pACKED WiTH ASProtect》作者是Predator [PC/MFD], April 26, 2000 ,这时对SMC还不了解,只是照样画葫芦。补丁:

1. 用PRODUMP载入主程序MUSREA.EXE, 知道基地址为00400000,为了找程序入口点, 用上D.BOY的冲击波2000, 找到为0048A410. 所以offset = 0048a410-00400000 = 0008a410. 用ULTRAEDIT搜索 10 a4 08, 找到惟一地址0004c49d. 因为我准备让她先运行我的PATCH CODE, 所以准备在000003d0处修补,所以在0004c49d处将10 a4 08改为d0 03 00.

2. patch code.

首先感谢十三少与dREAMtHEATER的工作, 我知道要在

cs:0048A4E1 0F8498000000 je 0048A57F 改为

eb74 jmp 0048A761

9090 nop

9090 nop

3. 在000003d0处: 用hiew写上如下代码

000003d0: 0000 我发现跳到这里后不能直接写patch code, 必须过渡一下.

000003d2: 66c705e1a44800e9eb patch code 1

000003db: 66c705e3a448000200 patch code 2

000003e4: 66c705e5a448000090 patch code 3

000003ed: 6810e44800 放入真实的入口点

000003f2: c3 返回



第二次就是破解《有声有色3.16》,参考的是台湾陈正颖的《破ASPACK2000》及Varroa原着,Winter Lee翻译的《The Bat! 1.32破解方法》,用了一个下午。由此对SMC有了些初步的了解。具体文章请看论坛中的前作。



对于补丁代码要放在程序中何处,我的理解是要在程序中的“空地”,同时这段代码在程序映射入内存后不能被覆盖。所以在处理《有声有色3.10》时我就没有想到用TOPO来帮忙。而在《有声有色3.16》版中我找到的空地结果证实是不能使用的,所以才有TOPO的出场。

程序“空地”的使用与否,我是用以下方法知道的,可能很苯,谁用更好的方法还请指教。

在《有声有色3.16》中发现只有程序的头部有空,所以用ULTRAEDIT在这个空地中写了些标记“AAAAABBBBCCCDDE”,在程序运行后设个断点将程序拦截,并在内存中进行搜索,结果发现其在这个程序中的位置是cs:C2145D34,而不是在常规的cs:00400000节段内,所以就没有用。我想dREAMhTEATER兄可能也是同样问题。



我将文中提到的文章及我的陋文打包为mercury.zip文件,会请看雪兄提供下载,谁若有兴趣欢迎交流。



希望能有机会与dREAMhTEATER兄交流。

最后感谢曾经帮助过我的朋友们,谢谢你们!


最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 15:18 , Processed in 0.178278 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部