------------数据段ASCII字符串内存动态恢复[语音]----------------------------- 大家好 我是夜苦寒 QQ93331961 今天给大家带来个数据段ASCII字符串内存动态恢复的教程。
工具:pcshare20071125免费版 (官方下载地址:http://www.pcshares.cn/) LordPE OllyDBG C32 ----------------------------------------------------------------新世纪网安动画投稿方式: 投稿方法一: FTP://www.520hack.com 账号:520hack 密码:520hack 投稿方法二: 邮箱: www520hack@126.com 投稿收录奖励情况详见:http://bbs.520hack.com/read.php?tid=81824 -----------------------------------------------------------------
虽然黑防已经出有出了这个教程,但那是黑防的VIP教程,对于跟我一样的穷人们是无缘观看的。所有
我才为大家做了这个免费的教程。
我就用pcshare20071125免费版中的PcInit.exe中的ASCII字符串DoService给大家演示一下。
首先需要确定数据段是否为可写,这里我们可以直接设置为E0000020,也就是可读可写可执行的属性。
用ollydbg载入
原入口点0040254F
找到ASCII字符串的内存地址 并记录ASCII字符串的内存地址。404020
二进制复制字符串的ASCII码
44 6F 53 65 -65536f44 72 76 69 63 -63697672 65 -65
找一个0区域,记录下地址作为新入口点2700
,然后写以下代码。 (动态恢复代码 mov dword ptr ds:[ASCII字符串的原内存地址],ASCII数值) mov dword ptr ds:[404020],65536f44 注:65536F44 是DoSe的ASCII码,也就是c32下 的16进制数值,但是要倒序写入 。
mov dword ptr ds:[404020+4],63697672 (每行代码中的ASCII字符串的原内存地址以4递增)
mov dword ptr ds:[404020+8],65 jmp 0040254F
最后加一个跳转,跳转到原入口点 。然后把添加的这段指令的地址作为新入口点。(这里我只是为了方
便演示,大家可以在程序通过call调用最后记得加上ret返回。 )
保存程序。用C32载入,来到数据段DoService的地方,用任何ASCII码填充掉都可以。
好了,教程就做到这里,大家下去自己研究研究 拜拜 |