黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 软件破解 >> 正文
·完美空间提供500M免费AS04-10·企业安全之YY内网准入以04-09
·企业安全之意识与策略04-09·剑走偏锋:IIS漏洞利用04-09
·我来免费网提供100M免费04-09·1122mb.com提供20G超大免04-08
·映像劫持与反劫持技术04-07·让所有"暴力删除工具"无04-07
·入侵88red系统的详细过程04-07·Sql Injection脚本注入终04-07
·vbs+delphi 反弹后门生成04-07·飞讯网提供100MB免费PHP04-07
·突破SQL注入攻击时输入框04-04·结合内核和病毒技术的最04-04
·Real Player rmoc3260.d04-04·亿万网络今月最后为您提04-04
·php+mysql 5 sql inject04-03·Real Player rmoc3260.d04-03
·oblog文件下载漏洞04-03·免费啦提供1G-2G免费全能04-03
·完全解析网页后门和挂马04-02·一句话开3389(只测试过04-02
·萧萧免费空间网提供100M04-02·谷道免费空间网提供1G免04-01
·从本地入手解决双线路由03-31·sablog 1.6 多个跨站漏洞03-31
·富文本编辑器的跨站脚本03-31·Cookie注入是怎样产生的03-31
[图文]破解利器Olldbg脚本教学(四)-ODbgScript的注意事项和使用技巧
      ★★★★★

破解利器Olldbg脚本教学(四)-ODbgScript的注意事项和使用技巧

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-11-7 8:56:09

<第二课 SEH技术>SEH脚本规避技术
     其实,SEH挺死的,它的结构和原理在看雪已经被各位大侠研究透了,核心关键是抓住
SEH的就是异常处理的句柄,它让异常的程序能回归进入正常的流程.我这里要强调一点,
请小心使用你的硬件断点.至于为什么你去看SEH原理.所以请大家都检查一下OD,看选项-调试一栏
中,不要钩上硬件断点,否则你每次F7和F8都是下的硬件断点.硬件断点最好在需要的时候再下.


<第六课 寻找OEP>
(1)根据跨段指令寻找OEP和根据堆栈平衡原理找OEP
    ESP定律的发现和不断的完善是脱壳界一个重大进步,我们知道,壳无论怎么玩都是要交回原运行环境给程序,这样就暴露出它的软肋,我们定位好堆栈的数据,只要某段时刻一旦两个环境重合,就说明壳转了一圈回到了初始的环境,即便它不马上跳去OEP.但是,从堆栈平衡的原理来说它完成了它的一个轮回.原理上来说,只要我们能熟练的把握好<堆栈平衡原理>,那么你就能够在各种壳的风口浪尖上不走迷失了方向.我个人也认为<堆栈平衡原理>是对付壳的一个重大武器,我们可以不断的在这个基础上进行深化和突破.

    我们常常遇见ESP定理"失效"的时候,其实,它并没有失效,而是你不要把ESP定理机械的理解为就是OEP处,,就像我们知道的两点决定一线一样简单的定律,你只是简单的想成一根线,那么,你还能对付考大学路上的题海么? :)
    真正掌握ESP定律,真正吸取ESP的精髓,壳等待你的就是你无比尖锐的利剑...
    我曾经用ESP原理破掉了90%的壳,一个很简单的方法,我写过一个程序,就死死盯住原始环境,你走多少次我记录多少次,然后把纪录一看再作些工作统计一下,OEP绝大部分原形毕露...方法笨是笨点,但找OEP准确率太高了.

这里是一个简单的ESP定律脚本,主要是对付一些简单的压缩壳和保护壳,毕竟是教学,就不把它写复杂了.
这里用了几个小技巧就是靠单步来寻找pushad,并且避开当前就是pushad.并且还原堆栈以前的状态.
由于是脚本直接用指令改了EIP,所以,屏幕并没有刷屏,大家要双击一下EIP就是可以看见堆栈还原后的状态了.

脚本三:ESP定律
//=========================================================================
Start:
msgyn "你是选择pushad/popad方式吗(是)?还是狭义ESP方式(否)"
cmp $RESULT,1
jne esp


mov tmp,[eip],1
cmp tmp,60                 //比较当前指令是否是pushad(60)如果是转ESP处理方式
je esp

findpushad:                //如果不是就一直找到pushad(60)的地址
find eip,#60#
cmp $RESULT,0
je findtmp
mov tmp,[eip],1
cmp tmp,60
jne findok                
sti 
jmp esp

findtmp:
sti
jmp findpushad

findok:                      
bp $RESULT
esto
bc $RESULT

esp:
mov tmp,esp
sub tmp,4
sti
bphws tmp,"w"
esto
bphwcall
preop eip                        //向上还原堆栈状态.
mov oep,$RESULT                  
add esp,4
mov eip,oep
msg "你已经到达ESP平衡处"

end:
ret           // 结束脚本 

//==============================================================

(3)根据编译语言特点找OEP

   这个没有什么可教学的,就是需要你平时在计算机里面搜集一下各种没有加过壳的小程序,建立常规程序的搜集库,这些小文件可以很好的教你如何识别OEP的规律,各类语言编译的文件入口点都有一些规律的,在于你是否熟悉它,千变万化不离其宗.重要的是现在壳开始大规模偷OEP的头了,这样就很难用一般方法来简单定位OEP了,偷归偷,可环境它不能乱来,它只能来仿真以前的语句来实现被偷OEP的运行模式,壳现在的确还没有达到IA高度智能化的境界.比如我们可以知道VC5-6有一些版本的首个API就是调用GetVersion这个函数,可现在的壳大部分是把这个call给偷的没有影了,怎么办???
   呵呵,小猫腻,我们用脚本来一句就可以定位它.
   
   tocnd "eax == 0A280105"
   
   只要是VC5-6某些带GetVision的版本的程序,它一定要返回固定的版本号(只要你机器装好了XP操作系统这个0A280105就一定是它,是2000的话你自己查一下),机器是傻的人是活的,包裹的再好你也要漏一丝缝,Themida就是被我用这个简单的方法在GetVersion这个call中锁的死死的,不管你走多少步,我对照寄存器环境的变换,就可以锁死你的VM在干什么!实在懒得在IDA中分析了,就这个方法破花指令和VM是特别有效的. 

(小提示:这些VC5-VC6的程序,你只要OD能完整的跑一次,就可以用我这个方法跑到GetVersion这个CALL上不管它怎么偷,当然你的CPU要够强劲,剩下的事情你可以去看连续剧了,慢是慢点,剩心剩事,顺便还可以把oep被偷的头记录的完完整整)

上一页  [1] [2] 

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886