首页
社区
课程
招聘
[求助]SVKP 1.3x -> Pavol Cerven脱壳问题
发表于: 2006-10-15 11:46 6637

[求助]SVKP 1.3x -> Pavol Cerven脱壳问题

2006-10-15 11:46
6637
看了精华6那么多大侠的
SVKP 1.3x -> Pavol Cerven 脱壳文章

加了个记事本练手,把过程放上来,还有几个问题

忽略所有异常,OD载入

0040C000 >  60              PUSHAD   //停在这里
0040C001    E8 00000000     CALL NotePad9.0040C006
0040C006    5D              POP EBP
0040C007    81ED 06000000   SUB EBP,6
0040C00D    EB 05           JMP SHORT NotePad9.0040C014
0040C00F    B8 06364200     MOV EAX,423606
0040C014    64:A0 23000000  MOV AL,BYTE PTR FS:[23]
0040C01A    EB 03           JMP SHORT NotePad9.0040C01F
0040C01C    C784E8 84C0EB03>MOV DWORD PTR DS:[EAX+EBP*8+3EBC084],75E>

F9运行一次 停在 SVKP 1.3x典型异常处

0F55137F    6285 0E0B0000   BOUND EAX,QWORD PTR SS:[EBP+B0E] //停这里
0F551385    EB 02           JMP SHORT 0F551389
0F551387    0FE88B D1EB02CD PSUBSB MM1,QWORD PTR DS:[EBX+CD02EBD1]
0F55138E    208B C2EB02CD   AND BYTE PTR DS:[EBX+CD02EBC2],CL
0F551394    208B 8A4F0800   AND BYTE PTR DS:[EBX+84F8A],CL
0F55139A    007C03 EB       ADD BYTE PTR DS:[EBX+EAX-15],BH
0F55139E    0369 74         ADD EBP,DWORD PTR DS:[ECX+74]
0F5513A1    FB              STI
0F5513A2    8B89 74010000   MOV ECX,DWORD PTR DS:[ECX+174]
0F5513A8    E8 01000000     CALL 0F5513AE

ALT+M

才 CODE"代码"下F2 SHIFT+F9 后
0F57B6B1    8A06            MOV AL,BYTE PTR DS:[ESI] //停在这里
0F57B6B3    46              INC ESI
0F57B6B4    47              INC EDI
0F57B6B5    8843 0F         MOV BYTE PTR DS:[EBX+F],AL
0F57B6B8    8A46 FF         MOV AL,BYTE PTR DS:[ESI-1]
0F57B6BB    55              PUSH EBP
0F57B6BC    E8 00000000     CALL 0F57B6C1
0F57B6C1    5D              POP EBP
0F57B6C2    81ED 0D470000   SUB EBP,470D
0F57B6C8    8A8D 50030000   MOV CL,BYTE PTR SS:[EBP+350]
0F57B6CE    5D              POP EBP
0F57B6CF    32C1            XOR AL,CL
0F57B6D1    8847 FF         MOV BYTE PTR DS:[EDI-1],AL
0F57B6D4    8BC5            MOV EAX,EBP
0F57B6D6    4D              DEC EBP
0F57B6D7    85C0            TEST EAX,EAX
0F57B6D9  ^ 75 A4           JNZ SHORT 0F57B67F
0F57B6DB    33C0            XOR EAX,EAX
0F57B6DD    5D              POP EBP
0F57B6DE    5F              POP EDI
0F57B6DF    5E              POP ESI
0F57B6E0    5B              POP EBX
0F57B6E1    C2 1400         RETN 14
0F57B6E4    8B4424 0C       MOV EAX,DWORD PTR SS:[ESP+C]
0F57B6E8    8B4C24 08       MOV ECX,DWORD PTR SS:[ESP+8]
0F57B6EC    8B5424 04       MOV EDX,DWORD PTR SS:[ESP+4]
0F57B6F0    50              PUSH EAX
0F57B6F1    51              PUSH ECX
0F57B6F2    52              PUSH EDX
0F57B6F3    E8 08000000     CALL 0F57B700
0F57B6F8    83C4 0C         ADD ESP,0C
0F57B6FB    33C0            XOR EAX,EAX
0F57B6FD    C2 0C00         RETN 0C //F4到这里

然后下硬件访问断点

hr 12ffa4  SHIFT+F9 运行

0F5B1D30    60              PUSHAD     //第一次中断
0F5B1D31    E8 03000000     CALL 0F5B1D39
0F5B1D36    D2EB            SHR BL,CL
0F5B1D38    0A58 EB         OR BL,BYTE PTR DS:[EAX-15]
0F5B1D3B    0148 40         ADD DWORD PTR DS:[EAX+40],ECX
0F5B1D3E    EB 01           JMP SHORT 0F5B1D41
0F5B1D40    35 FFE061E8     XOR EAX,E861E0FF

继续 SHIFT+F9 运行
0F5B1D44    E8 01000000     CALL 0F5B1D4A   //第2次中断
0F5B1D49    E8 E8020000     CALL 0F5B2036
0F5B1D4E    00CD            ADD CH,CL
0F5B1D50    2083 04240B83   AND BYTE PTR DS:[EBX+830B2404],AL
0F5B1D56    44              INC ESP
0F5B1D57    24 04           AND AL,4
0F5B1D59    13C3            ADC EAX,EBX
0F5B1D5B    E9 E8020000     JMP 0F5B2048
0F5B1D60    00CD            ADD CH,CL
0F5B1D62    2083 042408C3   AND BYTE PTR DS:[EBX+C3082404],AL
0F5B1D68    E8 E8320000     CALL 0F5B5055
0F5B1D6D    00C3            ADD BL,AL
0F5B1D6F    EB 04           JMP SHORT 0F5B1D75

继续 SHIFT+F9 运行

0F5B1DEC    E8 00000000     CALL 0F5B1DF1  //第3次
0F5B1DF1    5D              POP EBP
0F5B1DF2    E8 02000000     CALL 0F5B1DF9
0F5B1DF7    CD 20           INT 20
0F5B1DF9    830424 08       ADD DWORD PTR SS:[ESP],8
0F5B1DFD    C3              RETN
0F5B1DFE    E8 83ED05EB     CALL FA610B86
0F5B1E03    020F            ADD CL,BYTE PTR DS:[EDI]
0F5B1E05    C7              ???                                      ; 未知命令
0F5B1E06    EB 02           JMP SHORT 0F5B1E0A
0F5B1E08    CD 20           INT 20
0F5B1E0A    0F31            RDTSC
0F5B1E0C    E8 02000000     CALL 0F5B1E13
0F5B1E11    CD 20           INT 20

然后删除硬件访问断点`下模拟跟踪命令

tc ebp==12ffc0
004010C0    25 322E3264     AND EAX,64322E32
004010C5    0000            ADD BYTE PTR DS:[EAX],AL
004010C7    000D 0A000055   ADD BYTE PTR DS:[5500000A],CL
004010CD    8BEC            MOV EBP,ESP
004010CF    83EC 44         SUB ESP,44   //停在这里
004010D2    56              PUSH ESI
004010D3    FF15 E4634000   CALL DWORD PTR DS:[4063E4]
004010D9    8BF0            MOV ESI,EAX
004010DB    8A00            MOV AL,BYTE PTR DS:[EAX]
004010DD    3C 22           CMP AL,22
004010DF    75 1B           JNZ SHORT NotePad9.004010FC
004010E1    56              PUSH ESI
004010E2    FF15 F4644000   CALL DWORD PTR DS:[4064F4]
004010E8    8BF0            MOV ESI,EAX

打开LordPE

选择这个进程 纠正后 保存
:)

然后打开ImportREC 设置为“使用特权调试模式”(要不看不见进程 汗)

选择这个进程 OEP输入 10cc 点 “自动获取”提示“发现数据”点确定

点“获取输入表” 全部无效!用“追踪级别1”可以捕获大部分指针!

但是有3个指针无法修复。OK 开始问问题了

问题1 很多教程 都是用
SvkpIAT.dll的插件识别出GetVersionExA和GetModuleHandleA,然后最后一个就是ExitProcess了,我却一个都识别不出来?为什么?

问题2

最新魔兽皇冠外挂SVKP 1.3x - Pavol Cerven脱壳
原文链接:http://bbs.pediy.com/showthread.php?threadid=16462


ctrl+f搜索特征码

cmp dword ptr ds:[ebx],251097CC



SVKP 1.3x -> Pavol Cerven脱壳
原文链接:http://bbs.pediy.com/showthread.php?threadid=13950

ctrl+f搜索特征码
cmp dword ptr ds:[ebx],2D66B1C5

他们是通过搜索特征码的方式 跳过IAT处理的

后面的那些数字 是如何得来?因为不知道怎么得到 所以我一直被捆扰

就这2个问题

插件无法追踪 和 搜索特征玛后面数值如何得到

希望高人回答下 Thanks

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (20)
雪    币: 229
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
问题1 很多教程 都是用
SvkpIAT.dll的插件识别出GetVersionExA和GetModuleHandleA,然后最后一个就是ExitProcess了,我却一个都识别不出来?为什么?

答:插件不行就手动

问题2
最新魔兽皇冠外挂SVKP 1.3x - Pavol Cerven脱壳
原文链接:http://bbs.pediy.com/showthread.php?threadid=16462


ctrl+f搜索特征码

cmp dword ptr ds:[ebx],251097CC



SVKP 1.3x -> Pavol Cerven脱壳
原文链接:http://bbs.pediy.com/showthread.php?threadid=13950

ctrl+f搜索特征码
cmp dword ptr ds:[ebx],2D66B1C5

他们是通过搜索特征码的方式 跳过IAT处理的

后面的那些数字 是如何得来?因为不知道怎么得到 所以我一直被捆扰

答:这个特征码是自己定义的 前人手动跟踪发现搜索这个能很快找到处理IAT的地方 你自己也可以手动找个特征码
2006-10-15 13:10
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
3
感谢 paradise 的回答

可惜你说的 答案1
插件不行就手动。地球人都知道
我就是不会手动 能详细一点么?
答案2 跟答案1有联系``
我答案1都不懂 答案2就更不用说了

还是感谢你的指教,希望详细一点

本人很愚笨!
2006-10-15 14:45
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
我只会脱,道理说不清
我只知道特征码的找法是前人经验,右边的数值是dll或函数名的哈希值

你参考loveboom的脱壳脚本,就知道怎么修改magic jmp,和特殊函数加密了
这样到达OEP后,import rec找到的指针都会是有效的了
上传的附件:
2006-10-15 15:14
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
5
我是个超级菜鸟

能看清脱壳脚本我也不会发这样基础的壳了
2006-10-15 17:26
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
6
最初由 skylly 发布
我只会脱,道理说不清
我只知道特征码的找法是前人经验,右边的数值是dll或函数名的哈希值

你参考loveboom的脱壳脚本,就知道怎么修改magic jmp,和特殊函数加密了
这样到达OEP后,import rec找到的指针都会是有效的了


其实你不需要说清``

你把你的脱壳过程 拿录象机录下来

我一看就会豁然开朗

谢谢指点 SKYLLY
2006-10-15 17:28
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
7
我一般用脱壳机脱
用录像的话,怕对你没意义,
2006-10-15 17:39
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
8
最初由 skylly 发布
我一般用脱壳机脱
用录像的话,怕对你没意义,


我是为了技术最求

如果拿脱壳机脱就算了

我愿意看录象自己手脱 还是谢谢SKYLLY了
2006-10-15 18:14
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
9

skylly

把脱这个记事本的脚本传上来

或者把名字给我我自己去搜

然后慢慢分析把
2006-10-15 18:44
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hxx
10
你搜索一下,这个壳修复forgot版主有文章详细讲解

你是不是那个做简单脱壳动画买钱的超小子?
2006-10-15 20:23
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
11
我是Best超
动画是我做的
并没卖钱
你所谓的"简单动画"是黑吧要求我做的

我做的复杂的 你没看见 请楼上的别乱发表意见
2006-10-15 23:57
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
12
如果
hxx
是成心帮我解决问题的 本人先谢了

请把 forgot版主的详细文章连接 或者文章名字留下

精华帖里面没看见修复这个的
2006-10-16 00:28
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hxx
13
http://bbs.pediy.com/showthread.php?s=&threadid=21987&highlight=SVKP+1.3x
10楼,forgot版主回答了问题。

2006-10-16 12:08
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
14
没办法 它是商业机构 当然 我已经免费发布了
另外 喜欢你对我的支持和厚爱!
2006-10-16 12:16
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
15
以前看过 我看不懂他这个教程
你能直接回答我的问题么?HXX
2006-10-16 12:22
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
16
没人帮忙啊?
最新魔兽皇冠外挂SVKP 1.3x - Pavol Cerven脱壳
原文链接:http://bbs.pediy.com/showthread.php?threadid=16462


ctrl+f搜索特征码

cmp dword ptr ds:[ebx],251097CC



SVKP 1.3x -> Pavol Cerven脱壳
原文链接:http://bbs.pediy.com/showthread.php?threadid=13950

ctrl+f搜索特征码
cmp dword ptr ds:[ebx],2D66B1C5

他们是通过搜索特征码的方式 跳过IAT处理的

后面的那些数字 是如何得来?
2006-10-16 19:29
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
17
别人都说了几千几万遍了,你还死钻这个牛角尖
2006-10-17 08:53
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
18
最初由 skylly 发布
别人都说了几千几万遍了,你还死钻这个牛角尖


没懂你的意识?

我只想知道来龙去脉?难道可以不用这个方法?

我也不想 但是我想搞定他。。所以转一下也愿意
2006-10-17 09:00
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
19
251097CC是ExitProcess的哈希(hash)值
2D66B1C5是GetCommandLineA的哈希(hash)值
等等
svkp的壳要对这些特殊函数加密都是用形如
cmp dword ptr ds:[ebx],251097CC  //比较当前处理的函数是不是ExitProcess
这样的固定的代码来判断当前处理的函数是不是要进行加密的,如果是则跳到加密的代码部分

所以你只要是脱svk的壳都可以找这个特征码

至于特征码是怎么找到的,当然是前辈们慢慢跟踪,总结出来的规律,
不可能不实践就能猜到特征码的.
2006-10-17 12:52
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
20
SKYLLY,Thanks!!!!
虽然现在不明白

晚上应该就明白了

祝身体健康and万事如意
2006-10-17 16:40
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
21
最初由 skylly 发布
251097CC是ExitProcess的哈希(hash)值
2D66B1C5是GetCommandLineA的哈希(hash)值
等等
svkp的壳要对这些特殊函数加密都是用形如
cmp dword ptr ds:[ebx],251097CC //比较当前处理的函数是不是ExitProcess
........


再次感谢SKYLLY的回答

明白了 原来cmp dword ptr ds:[ebx],251097CC  是固定的数值!

虽然脱记事本下面的是JMP我不知道怎么解决

但是知道是固定的 就OK了 祝家庭幸福美满
2006-10-17 22:41
0
游客
登录 | 注册 方可回帖
返回
//