SMC程序自修改CM爆破小记
本帖最后由 虚竹 于 2015-5-25 23:03 编辑SMC的意思就是 Self-Modifying Code (程序自修改) 其实很多SMC时侯都要用到SMC 比如编程时
这里小菜 要感谢我们的 @Mrack 师傅 和 @神话师傅
以前一直以为SMC就是HOOK的意思 其实 也有这个意思 但是SMC是在OEP跳到空白的地方 然后修改后 在跳回到 OEP
SMC就是把code当Data来用 Mrack师傅的话 下面进入正片
--------------- --------------- --------------- --------------- --------------- --------------- --------------- --------------- --------------- ---------------
教材是一个自己写的CM 大家可以自己试试才来看教程 CM下载地址:
第一步 载入OD 然后 搜索字符串
双击进入
因为我们重要讲的SMC 所以这里就简单分析一下
F7进入
验证CALL这个CM 重要就是 比较全局变量
直接nop掉 也可以完成爆破
我们可以看到他
在比较 0 和 1 这里把他内存数据 修改为 1 就可以完成爆破
我们把地址都记录起来
就可以开始 SMC了
这里我们搜索
000000000000000000
找到空白的地方然后记录起来这里就是SMC修改的地方
然后我们
重载 把OEP 和其他地址 全部记录起来
“这里我们还没运行程序"
这里是SMC
所以我们要在OEP的地方 JMP到空白地方 完成我们要修改的任务 在跳回来 (JMP是无条件跳的意思)
下面我们就可是写代码了
这里有详细的介绍 我们这里简单的介绍一下
CMP是比较的意思比如CMP
1,0那么现在比较的是 0和1
MOV是传递的意思比如MOV eax,0那么现在
EAX=0
byte 是单字节的意思 “00”
word是双字节的意思"00 00"
dword是4字节的意思“00 00 00 00”
那么现在我们就已经完成了SMC的自我修改
我们运行起来看看!
OK 已经完成了! 其实大家可以试试自己加UPX壳来试试效果!
教程的CM是没加过壳的!
下载的附加是 修改过后的 大家放入OD 搜索 000000000000 看看
支持大大 以后一定要多出教程哦 支持大大 以后一定要多出教程{:5_116:} {:5_185:}羡慕温柔大大, 小菜表示这个词都没听说过.. 感觉好高端 谢谢分享,这方面我要加强学习了..... 感谢教程!! 感谢分享,好人 先看教程再来评价
先看教程再来评价