能力值:
(RANK:350 )
|
-
-
2 楼
建议将原文理解透。
最初由 peaceclub 发布 请您忽略所有异常,除了C000001D (ILLEGAL INSTRUCTION)。 出现异常提示,点击"确定
异常提示:
|
能力值:
(RANK:10 )
|
-
-
3 楼
遇见故人了
|
能力值:
(RANK:50 )
|
-
-
4 楼
看堆栈区域和cpu窗口代码,我们依照VC程序入口点进行修补,oep为401d60:
引用:
00401D60 /. 55 PUSH EBP
00401D61 |. 8BEC MOV EBP,ESP
00401D63 |. 6A 00 PUSH 0 **注意:此处正常为push -1,壳作者把它修改了,我们也照旧吧***
00401D65 |. 68 B0354000 PUSH pel.004035B0
00401D6A |. 68 E61E4000 PUSH pel.00401EE6 ; JMP to msvcrt._except_handler3; SE handler installation
00401D6F |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00401D75 |. 50 PUSH EAX
00401D76 |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP
00401D7D |. 83EC 68 SUB ESP,68
00401D80 |. 53 PUSH EBX
00401D81 |. 56 PUSH ESI
00401D82 |. 57 PUSH EDI
00401D83 |. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
00401D86 |. 33DB XOR EBX,EBX
00401D88 |. 895D FC MOV DWORD PTR SS:[EBP-4],EBX
00401D8B |. 6A 02 PUSH 2
问题1 为什么要按VC程序补?
问题2 为什么OEP是401d60 怎么来的?
问题3 代码不一样? 我的代码是。
00401D54 - FF25 E4314000 JMP DWORD PTR DS:[4031E4] ; msvcrt.__CxxFrameHandler
00401D5A CC INT3
00401D5B CC INT3
00401D5C CC INT3
00401D5D CC INT3
00401D5E CC INT3
00401D5F CC INT3
00401D60 72 39 JB SHORT Dll_Load.00401D9B
00401D62 1C 8E SBB AL,8E
00401D64 C7 ??? ; 未知命令
00401D65 ^ E3 F1 JECXZ SHORT Dll_Load.00401D58
00401D67 ^ 78 BC JS SHORT Dll_Load.00401D25
00401D69 5E POP ESI
00401D6A 2F DAS
00401D6B 97 XCHG EAX,EDI
00401D6C 4B DEC EBX
00401D6D 25 92C9E472 AND EAX,72E4C992
00401D72 391C0E CMP DWORD PTR DS:[ESI+ECX],EBX
00401D75 87C3 XCHG EBX,EAX
00401D77 61 POPAD
00401D78 3098 CCE67339 XOR BYTE PTR DS:[EAX+3973E6CC],BL
00401D7E 9C PUSHFD
00401D7F 4E DEC ESI
00401D80 27 DAA
00401D81 93 XCHG EAX,EBX
00401D82 C9 LEAVE
00401D83 64:B2 59 MOV DL,59 ; 多余的前缀
00401D86 2C 16 SUB AL,16
00401D88 8B45 A2 MOV EAX,DWORD PTR SS:[EBP-5E]
00401D8B D168 FF SHR DWORD PTR DS:[EAX-1],1
00401D8E 15 C8314000 ADC EAX,Dll_Load.004031C8
00401D93 59 POP ECX
00401D94 830D 70424000 F>OR DWORD PTR DS:[404270],FFFFFFFF
00401D9B 830D 74424000 F>OR DWORD PTR DS:[404274],FFFFFFFF
00401DA2 FF15 C4314000 CALL DWORD PTR DS:[4031C4] ; msvcrt.__p__fmode
00401DA8 8B0D 64424000 MOV ECX,DWORD PTR DS:[404264]
00401DAE 8908 MOV DWORD PTR DS:[EAX],ECX
00401DB0 FF15 C0314000 CALL DWORD PTR DS:[4031C0] ; msvcrt.__p__commode
最后一个问题了 搞定了这个就解决了 那位大侠来帮下忙咯
|
能力值:
(RANK:50 )
|
-
-
5 楼
来个高手解决下啊。。等半天了。。
|
能力值:
(RANK:10 )
|
-
-
6 楼
哎,看你等等等,我来回答你吧
问题1 为什么要按VC程序补? 问题2 为什么OEP是401d60 怎么来的? 问题3 代码不一样? 我的代码是。
第一个和第2个问题很弱
看语言特征嘛
msvcrt.__set_app_type
msvcrt.__p__fmode
都是VC的专利
问题三呢依然很弱,因为你操作都错了
RemoteJump没处理或者是没处理对
PS:楼主是大名鼎鼎的B超?牛人啊
|
能力值:
(RANK:50 )
|
-
-
7 楼
操作没错啊?
什么牛人啊?倒 新人。才来看雪
看雪都是牛人 我就什么都不是了 才研究这个壳
|
能力值:
(RANK:10 )
|
-
-
8 楼
最初由 bestchao 发布 操作没错啊? 什么牛人啊?倒 新人。才来看雪 看雪都是牛人 我就什么都不是了 才研究这个壳
你RemoteJump没处理对啦
PS:很少见B超有这么谦虚的时候了
|
能力值:
(RANK:50 )
|
-
-
9 楼
请教 你RemoteJump没处理对啦
这个在那里?文章没看见?麻烦了
我现在专心学东西。。懂的越多 才知道学的太少。。
|
能力值:
(RANK:50 )
|
-
-
10 楼
留个QQ请教?麻烦了 为了研究这个半个月了
没进展。。。那么多方法 还是这个最方便
可惜最后一步又卡住了
|
能力值:
( LV9,RANK:1210 )
|
-
-
11 楼
我在这里回答了
http://bbs.pediy.com/showthread.php?s=&threadid=29850
|
能力值:
( LV9,RANK:250 )
|
-
-
12 楼
楼上的早发脱壳机,我就不用研究pelock了.
发机吧
|
能力值:
(RANK:50 )
|
-
-
13 楼
哈哈 罗老大来了
我要的是技术。。不是要脱壳。。
用脱壳机脱多没意识。。
|
能力值:
(RANK:10 )
|
-
-
14 楼
牛B的B哥是想学会后在菜鸟面前来个“宠物”炫
|
能力值:
(RANK:50 )
|
-
-
15 楼
成心请教问题
请不要语言攻击
不愿意指导就拉倒
谢谢合作
|
能力值:
(RANK:10 )
|
-
-
16 楼
最初由 bestchao 发布 成心请教问题 请不要语言攻击 不愿意指导就拉倒 谢谢合作
这不是忙中挑闲 调侃下嘛
|
能力值:
(RANK:50 )
|
-
-
17 楼
我只想彻底解决最后一个问题
请指导一下。。
最后一步停留的地方都是对的
补丁地方代码不对?
|
能力值:
(RANK:50 )
|
-
-
18 楼
第四步:StolenCode修补:
在401000上下访问断点,F9运行,我们停留在:
QUOTE:
00401D8D ? FF15 C8314000 CALL DWORD PTR DS:[4031C8] ; msvcrt.__set_app_type
00401D93 . 59 POP ECX
00401D94 . 830D 70424000>OR DWORD PTR DS:[404270],FFFFFFFF
00401D9B . 830D 74424000>OR DWORD PTR DS:[404274],FFFFFFFF
00401DA2 . FF15 C4314000 CALL DWORD PTR DS:[4031C4] ; msvcrt.__p__fmode
00401DA8 . 8B0D 64424000 MOV ECX,DWORD PTR DS:[404264]
00401DAE . 8908 MOV DWORD PTR DS:[EAX],ECX 我这里还是正确的 停留位置一样
到这里就迷茫了?
看堆栈区域和cpu窗口代码,我们依照VC程序入口点进行修补,oep为401d60:
QUOTE:
00401D60 /. 55 PUSH EBP
00401D61 |. 8BEC MOV EBP,ESP
00401D63 |. 6A 00 PUSH 0 **注意:此处正常为push -1,壳作者把它修改了,我们也照旧吧***
00401D65 |. 68 B0354000 PUSH pel.004035B0
00401D6A |. 68 E61E4000 PUSH pel.00401EE6 ; JMP to msvcrt._except_handler3; SE handler installation
00401D6F |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00401D75 |. 50 PUSH EAX
00401D76 |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP
00401D7D |. 83EC 68 SUB ESP,68
00401D80 |. 53 PUSH EBX
00401D81 |. 56 PUSH ESI
00401D82 |. 57 PUSH EDI
00401D83 |. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
00401D86 |. 33DB XOR EBX,EBX
00401D88 |. 895D FC MOV DWORD PTR SS:[EBP-4],EBX
00401D8B |. 6A 02 PUSH 2
他的意识是
他这个代码 就
00401D63 |. 6A 00 PUSH 0 **注意:此处正常为push -1,壳作者把
把这个改下?如果是这样?为什么我的代码这里完全不一样
如果他写的是全部补丁代码 我补上去了也是假? 迷糊。。
|
能力值:
(RANK:10 )
|
-
-
19 楼
补丁的地方是动态的
你每次调试都不一样的
所以你跟罗兄文章里面的地址不一样 是很正常的
他提供的代码具体很高的通用性
我还没发现不对的地方
至于你是怎么操作的我就不知了
可以把你操作这段的利用录象录下来
这样一切就更明了了 不是么?
|
能力值:
(RANK:50 )
|
-
-
20 楼
何必你做个录象。。发给我看
我一下就明了了。。这样不就更好么
留个QQ把 朋友。。成心请教
|
能力值:
(RANK:10 )
|
-
-
21 楼
最初由 bestchao 发布 何必你做个录象。。发给我看
我一下就明了了。。这样不就更好么
留个QQ把 朋友。。成心请教
呵呵 要求还蛮多的
你就在这等其他人吧
|
能力值:
(RANK:1060 )
|
-
-
22 楼
查softworm笔记,发现有问题:
cmp eax, imm32
这个修复直接复制似乎不对,从我的代码来看,这里应该是
; 81F8 -> 3D same "cmp eax, DWORD"
.elseif w [esi] == 0F881h
dec ecx
inc esi
mov b [esi], 3Dh
jmp @@copy
.else
|
能力值:
( LV9,RANK:1210 )
|
-
-
23 楼
不管对不对,我都不记得了,那是刚学脱壳的时候写的
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
最初由 softworm 发布 不管对不对,我都不记得了,那是刚学脱壳的时候写的
|
|
|