首页
社区
课程
招聘
两步快速脱yoda's cryptor 1.2壳--esp定律和内存断点完美组合应用
发表于: 2004-7-26 10:05 8199

两步快速脱yoda's cryptor 1.2壳--esp定律和内存断点完美组合应用

2004-7-26 10:05
8199

两步快速脱yoda's cryptor 1.2壳--esp定律和内存断点完美组合应用         
   
软件名称:
  两步快速脱yoda's cryptor 1.2壳--esp定律和内存断点完美组合应用
   
软件简介:
  yoda's cryptor 1.2,老壳了。公开了源码,谢谢作者无私!

   
下载地址:
  本地下载
------------------------------------------------------------
   
破解作者:
  springkang[DFCG]
   
破解工具:
  OD,loadpe,impr,winxp
   
破解目的:
  学习和推广esp定律。
   
------------------------------------------------------------
   
[破解过程]
   
详细过程:
首先,忽略所有异常,再载入加壳的winxp记事本。

01013060 >  60              PUSHAD       //载入加壳程序后停在这里。首先使用esp定律!
01013061    E8 00000000     CALL NOTEPAD.01013066   //esp为0006ffa4
01013066    5D              POP EBP    //esp为0006ffa0  
01013067    81ED F31D4000   SUB EBP,401DF3    //esp为0006ffa4,从这里开始运行几步esp的值均无变化。好了,可以在这里下0006ffa4 硬件访问--word(dword)断点了,也可以再走几步下断,问题不大。F9运行。
0101306D    B9 7B090000     MOV ECX,97B
01013072    8DBD 3B1E4000   LEA EDI,DWORD PTR SS:[EBP+401E3B]

0101375D    50              PUSH EAX                                 ; NOTEPAD.0101370C    //中断到这里了,取消硬件断点,下内存访问断点。
0101375E    33C0            XOR EAX,EAX
01013760    64:FF30         PUSH DWORD PTR FS:[EAX]
01013763    64:8920         MOV DWORD PTR FS:[EAX],ESP
01013766    EB 01           JMP SHORT NOTEPAD.01013769
01013768    8700            XCHG DWORD PTR DS:[EAX],EAX
0101376A    0000            ADD BYTE PTR DS:[EAX],AL
0101376C    0000            ADD BYTE PTR DS:[EAX],AL

内存镜像,项目 27
地址=01001000
大小=00007000 (28672.)
Owner=NOTEPAD  01000000
区段=.text
包含=code   //老规矩了,在这里下内存断点  ,f9运行
类型=Imag 01001008
访问=RW  CopyOnWr
初始访问=RWE

01006AE0    6A 70           PUSH 70      //很脸熟吧,用loadpe和impr就可以dump和修复了,运行正常。
01006AE2    68 88180001     PUSH NOTEPAD.01001888
01006AE7    E8 BC010000     CALL NOTEPAD.01006CA8
01006AEC    33DB            XOR EBX,EBX
01006AEE    53              PUSH EBX

最后补充一下,如果用OD的插件dump加壳的yoda's cryptor 1.2主程序,impr修复,虽然运行正常,但无法加密。而用loadpe的dump再修复就没有这种问题。具体原因偶是个大菜鸟,也无法得知。

   
破解小结:
  此法对加壳的主程序同样有效! 下硬件断点的地址有很多,如0012ffa0,12ffc0,12ffac,12ffa4等,不一而足,不同的壳有不同的下法。关键是看载入加壳的程序后运行几步观察寄存器的esp的值,多试几次,就会有收获。例如petite2.2的壳就是下在0012ffc0处。
  最后感谢weiyi75,fly,loveboom(偶的老乡),shinegood,forgot,temerata等等高手,还有DFCG的我要大哥,你们的文章给予我很多帮助,谢谢你们!!!
   
------------------------------------------------------------
   
版权公有,人权私有。如有转载,注明作者。
点击下载:附件!yoda.rar


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (6)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
其实不用看esp,cmd bar里边输入hr esp-4,忽略所有异常,狂按f9...硬件中断就到了。
2004-7-26 10:32
0
雪    币: 323
活跃值: (589)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
3
hr esp-4,是在esp-4处下硬件只读断点,偶注意到载入时esp=0006ffc4,到达入口处时esp=0006ffc0,不知大侠是否从这里计算出来的?
2004-7-26 10:39
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
4
值不是重点,利用堆栈定位而已。
2004-7-26 10:44
0
雪    币: 323
活跃值: (589)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
5
多谢指点,慢慢消化!
2004-7-26 10:54
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我用OLLYDBG 找加了yoda's cryptor 1.2壳 的软件的入口地址,按前边所说,下了中断后运行程序,运行了一下后就自动终止退出了,用单步运行,程序就在一小段代码间循环,请问这是什么原因啊?
2004-8-5 19:33
0
雪    币: 323
活跃值: (589)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
7
把你加壳的软件放上来看看!
2004-8-6 08:32
0
游客
登录 | 注册 方可回帖
返回
//