首页
社区
课程
招聘
[求助]这个壳好难脱我用ESP定律也不行
发表于: 2009-6-26 14:28 11869

[求助]这个壳好难脱我用ESP定律也不行

2009-6-26 14:28
11869

这个壳用Peid查是PECompact 2.x -> Jeremy Collake,但是我手工用OD脱了半天了,还是不行。是什么原因?新手拜托大虾指点一下了,谢谢!

文件已经在附件中。


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (15)
雪    币: 2242
活跃值: (488)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
2
这个是伪装壳吧
OEP一下子就跟到了 只不过把kernel32.dll这个IAT的函数都指向自己的代码去了
里面就只是简单的jmp到原API去
花了点时间 把修改IAT的那个jmp处理了下
这壳很简单的 检查反调试都只是IsDebuggerPresent和CreateFile来检测Softice
2009-6-26 17:05
0
雪    币: 330
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
试了下,ESP定律可以搞定....
上传的附件:
2009-6-26 22:09
0
雪    币: 46
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看来 修复 比较 麻烦
2009-6-26 22:31
0
雪    币: 202
活跃值: (13)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
晕! 好像和PECompact 2.x有点小小不同! 我用od一跟到后面就被自动下了个断点! 郁闷! 期待各位大侠详细过程!
2009-6-27 15:50
0
雪    币: 233
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
能不能详细给我指点一下,这个壳到底怎么脱完整?
2009-7-3 14:04
0
雪    币: 202
活跃值: (13)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
不得已 没人管了 点将之! 看雪老大 你给说说撒!
这个都困扰我几天了! 好坏给点提示先! 谢谢了!
2009-7-3 17:09
0
雪    币: 276
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
ESP定律是可以搞定,但IAT修复能详细介绍下吗?
2009-7-6 14:51
0
雪    币: 2242
活跃值: (488)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
9
IAT加密我就来提一下吧
以前完整的跟踪过一次 现在都忘了
OD载入 直接F9
005D406C  77EF9C2D  gdi32.CombineRgn
005D4070  77EFC42D  gdi32.ExtEscape
005D4074  77EF5A6A  gdi32.GetDeviceCaps
005D4078  77EFB329  gdi32.GetSystemPaletteEntries
005D407C  77EFB479  gdi32.GetPixel
005D4080  77EFB4FF  gdi32.SetPixel
005D4084  77EF61EF  gdi32.CreateBitmap
005D4088  77EF6F79  gdi32.BitBlt
005D408C  00000000
005D4090  003F0000

005D4090 这里就是已经加密过了的kernel32库函数
对此下写入断点 一直F9到写入003F0000的时候

000314BE    A9 00000080     TEST EAX,80000000
000314C3    74 09           JE SHORT 000314CE
000314C5    25 FFFFFF7F     AND EAX,7FFFFFFF
000314CA    6A 00           PUSH 0
000314CC    EB 0E           JMP SHORT 000314DC
000314CE    8B4D 08         MOV ECX,DWORD PTR SS:[EBP+8]
000314D1    0341 08         ADD EAX,DWORD PTR DS:[ECX+8]
000314D4    33C9            XOR ECX,ECX
000314D6    66:8B08         MOV CX,WORD PTR DS:[EAX]
000314D9    51              PUSH ECX
000314DA    40              INC EAX
000314DB    40              INC EAX
000314DC    50              PUSH EAX
000314DD    FF75 FC         PUSH DWORD PTR SS:[EBP-4]
000314E0    FF93 0A210010   CALL DWORD PTR DS:[EBX+1000210A]   //获取函数地址  跟进

000300E6    E8 00000000     CALL 000300EB
000300EB    5B              POP EBX                                  ; 000300EB
000300EC    81EB FE103E00   SUB EBX,3E10FE
000300F2    FF75 10         PUSH DWORD PTR SS:[EBP+10]
000300F5    FF75 0C         PUSH DWORD PTR SS:[EBP+C]
000300F8    FF75 08         PUSH DWORD PTR SS:[EBP+8]
000300FB    FF93 2F103E00   CALL DWORD PTR DS:[EBX+3E102F]    //GetProcAddress
00030101    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
00030104    8B8B 61103E00   MOV ECX,DWORD PTR DS:[EBX+3E1061]
0003010A    3B4D 08         CMP ECX,DWORD PTR SS:[EBP+8]   //ecx存放着kernel32模块的基地址
[ebp+8] 为当前模块的基地址
0003010D    75 63           JNZ SHORT 00030172   //下面就是进行简单的加密 所以把这里的jnz改为jmp就可以跳过kernel32函数的加密了  到时候dump出来就完整了
2009-7-6 15:19
0
雪    币: 276
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢LS热心,我看看。
2009-7-6 15:56
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼上是怎么跟到这里的,我一步步跟,刚开始就给搞晕了.只看到里面一个异常处理函数修改了出错处的代码后,修改后的代码又不能正常运行,是个什么jmp,但是又是超过了+-128,后面再也跟不下去了.

大家给提示下,遇到这种情况该怎么办?
2009-7-7 15:56
0
雪    币: 97
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这种壳应该用内存镜像吧,我没试过~~~
2009-7-10 10:23
0
雪    币: 233
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这个壳到目前还未有人能成功脱完整吗?期待高手出现啊
2009-7-10 17:44
0
雪    币: 2575
活跃值: (502)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
14
http://bbs.pediy.com/showthread.php?t=93019
2009-7-11 22:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
貌似已经解决,关注学习下。。。
2009-7-11 22:38
0
雪    币: 239
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
PECompact 2.9 就是不一样
2009-8-8 17:00
0
游客
登录 | 注册 方可回帖
返回
//