个人学习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兄交流。
最后感谢曾经帮助过我的朋友们,谢谢你们!!!
- 标 题:个人学习SMC的一点体会--回答dREAMhTEATER兄 (2千字)
- 作 者:mercury
- 时 间:2000-10-7 13:06:50
- 链 接:http://bbs.pediy.com