mm475 发表于 2014-12-7 20:19

SMC补丁破解

搜索了一下论坛,还没有讲SMC的,今天我闲着无事做就来写个简单的SMC逆向
首先借用别人的文章科普下SMC
一、什么是SMC?
SMC(Self Modifying Code):自修改代码,应用于不脱壳逆向。二、什么情况下使用SMC?
有壳。一般情况下程序执行过程中代码无法修改(取决于程序编译过程的选项)。三、SMC实现过程?
原来:壳--->程序
现在:壳--->SMC--->程序
为了不破坏壳的代码,都在壳代码执行完后执行SMC
SMC中修改的是程序中注册机制的关键点。四、关键代码
mov byte/word/dword ptr ,某值
jmp
OEP是Orignal Entry Point的缩写,这里指地址。加过壳的程序载入时停的位置叫EP。
byte/word/dword分别对应字节、字、双字,分别为8Bit,16Bit,32Bit。后面的“某值”长度和前面对应。**** Hidden Message *****

梦一场ち 发表于 2014-12-7 20:39

感谢分享,楼主辛苦了

叶落 发表于 2014-12-7 20:45

mm475 发表于 2014-12-7 20:32
辛苦写了2小时,没人看!好悲催!沙发自己坐吧!

{:6_215:}那是我还没看到,否则一定顶

mm475 发表于 2014-12-7 20:32

辛苦写了2小时,没人看!好悲催!沙发自己坐吧!{:6_221:}

Scar-疤痕 发表于 2014-12-7 20:35

楼主辛苦了,写的很详细,谢谢!学习了!

叶落 发表于 2014-12-7 20:40

说得好牛逼学习了

叶落 发表于 2014-12-7 21:01

仔细研究学习了下你“启动到注册框后回溯,找段首再回溯,再到段首再回溯……”似乎没说清楚,怎么到关键代码的

mm475 发表于 2014-12-7 21:04

叶落 发表于 2014-12-7 21:01
仔细研究学习了下你“启动到注册框后回溯,找段首再回溯,再到段首再回溯……”似乎没说清楚,怎么到关键代 ...

大概4次把!然后单步F8,直到有个小循环,F4就会打开registered window!下面代码下断,点注册就会断下来

叶落 发表于 2014-12-7 21:11

mm475 发表于 2014-12-7 21:04
大概4次把!然后单步F8,直到有个小循环,F4就会打开registered window!下面代码下断,点注册就会断下来 ...

{:6_224:}我是新手菜鸟,大大说的我听不懂。。。


mm475 发表于 2014-12-7 21:19

叶落 发表于 2014-12-7 21:11
我是新手菜鸟,大大说的我听不懂。。。

上面找不到就直接按下面的思路注册,其实那段代码就是个写注册表的过程,自己在注册表里的user项里增加自己的名字是一样的效果,我之所以弄那段代码是有个通用性!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: SMC补丁逆向