首页
社区
课程
招聘
请进FLY老大,我的调试结果?
2005-1-5 17:55 5001

请进FLY老大,我的调试结果?

2005-1-5 17:55
5001
我的操作是没有问题的啊,那个脱arm的DLL壳都练的很熟了,怎么我机子上的返回就是错误的返回呢,所有kernel32.GetModuleHandleA的返回都试过了还是到不了你给出的那个地方,是哪边做错了吗?
前面发的链接:http://bbs.pediy.com/showthread.php?s=&threadid=9380

0006BB98   0098F613  返回到 0098F613 来自 kernel32.GetModuleHandleA
0006BB9C   009A0B58  ASCII "kernel32.dll"
0006BBA0   009A1BB4  ASCII "VirtualAlloc"

0006BB98   0098F630  返回到 0098F630 来自 kernel32.GetModuleHandleA
0006BB9C   009A0B58  ASCII "kernel32.dll"
0006BBA0   009A1BA8  ASCII "VirtualFree"

0005B018   00998666  返回到 00998666 来自 kernel32.GetModuleHandleA
0005B01C   00000000(这个地方应该不是正确返回的地方)

再shift f9就到下面了,应该就是例子里的那个返回点了
0005A218   74682BE2  返回到 74682BE2 来自 kernel32.GetModuleHandleA
0005A21C   74684018  ASCII "kernel32.dll"

再shift f9三下就到了入口警告了。
望指点!我用XP系统。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
打赏
分享
最新回复 (12)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2005-1-5 18:09
2
0
HE GetModuleHandleA
然后重新载入DLL

自己努力
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2005-1-5 18:10
3
0
请遵守游戏规则
不要点名
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjpvaps 2005-1-5 20:50
4
0
多谢老大不厌其烦的指点,我现在的那个地方找到了,我分析了一下子原因所在:在公司的XP系统下BP GetModuleHandleA+5及HE GetModuleHandleA断点在返回那里总是不正确,在家里的XP下也是,不过在家里的WIN2000下用两种断都正常找到Magic Jump了,现在OEP找到啦!(我在三个系统的操作步骤都是一样的),难道跟系统有关吗?
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjpvaps 2005-1-5 21:21
5
0
我是在学习脱arm的DLL壳,自己用一个没加壳的DLL加上了arm的壳,可不可以不用OD手脱,直接通过加壳文件与没加壳的比较(如OEP、ITA等),采用一些调试修复工具(如ImportREC、LordPE、Hex Workshop)来脱壳呢?要是可以应该用到哪些工具?简单的步骤是怎样的?我想从最简单开始深入,烦请老大指点一下!
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2005-1-5 21:51
6
0
好像没有像你所说的通过直接比较就能脱壳操作的程序
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
jdpack 1 2005-1-5 22:16
7
0
最初由 yjpvaps 发布
我是在学习脱arm的DLL壳,自己用一个没加壳的DLL加上了arm的壳,可不可以不用OD手脱,直接通过加壳文件与没加壳的比较(如OEP、ITA等),采用一些调试修复工具(如ImportREC、LordPE、Hex Workshop)来脱壳呢?要是可以应该用到哪些工具?简单的步骤是怎样的?我想从最简单开始深入,烦请老大指点一下!

你也太小看壳了:D
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjpvaps 2005-1-5 22:47
8
0
在找到OEP后用LordPE来dump full时"出现无法在进程同存中脱壳",用dump partial时出现“无法读入内存进程”是什么原因?

008A96FF   FF15 C8B08C00    CALL DWORD PTR DS:[8CB0C8]               ; KERNEL32.GetModuleHandleA
008A9705   8B0D C04C8D00    MOV ECX,DWORD PTR DS:[8D4CC0]  ****返回这里
008A970B   89040E           MOV DWORD PTR DS:[ESI+ECX],EAX
008A970E   A1 C04C8D00      MOV EAX,DWORD PTR DS:[8D4CC0]
008A9713   393C06           CMP DWORD PTR DS:[ESI+EAX],EDI
008A9716   75 16            JNZ SHORT 008A972E
008A9718   8D85 B4FEFFFF    LEA EAX,DWORD PTR SS:[EBP-14C]
008A971E   50               PUSH EAX
008A971F   FF15 D0B08C00    CALL DWORD PTR DS:[8CB0D0]               ; KERNEL32.LoadLibraryA
008A9725   8B0D C04C8D00    MOV ECX,DWORD PTR DS:[8D4CC0]
008A972B   89040E           MOV DWORD PTR DS:[ESI+ECX],EAX
008A972E   A1 C04C8D00      MOV EAX,DWORD PTR DS:[8D4CC0]
008A9733   393C06           CMP DWORD PTR DS:[ESI+EAX],EDI
008A9736   0F84 AD000000    JE 008A97E9           ***  Magic Jump  改为了JMP
008A973C   33C9             XOR ECX,ECX
008A973E   8B03             MOV EAX,DWORD PTR DS:[EBX]
008A9740   3938             CMP DWORD PTR DS:[EAX],EDI
008A9742   74 06            JE SHORT 008A974A

下面内存访问 断点得到OEP

我找到的“test”文件的OEP是:
10004979   55               PUSH EBP  ***OEP处
1000497A   8BEC             MOV EBP,ESP
1000497C   53               PUSH EBX
1000497D   8B5D 08          MOV EBX,DWORD PTR SS:[EBP+8]
10004980   56               PUSH ESI
10004981   8B75 0C          MOV ESI,DWORD PTR SS:[EBP+C]
10004984   57               PUSH EDI
10004985   8B7D 10          MOV EDI,DWORD PTR SS:[EBP+10]
10004988   85F6             TEST ESI,ESI
1000498A   75 09            JNZ SHORT mytest.10004995
1000498C   833D 60D10010 00 CMP DWORD PTR DS:[1000D160],0
10004993   EB 26            JMP SHORT mytest.100049BB
10004995   83FE 01          CMP ESI,1
10004998   74 05            JE SHORT mytest.1000499F

再下面dump时出错了。

老大的例子是可以完全dump的呀,为什么我的这个DLL就不能呢?

放上附件给验证
附件:test.rar
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyykj 2005-1-6 08:05
9
0
最初由 yjpvaps 发布
在找到OEP后用LordPE来dump full时"出现无法在进程同存中脱壳",用dump partial时出现“无法读入内存进程”是什么原因?

........

朋友,你看看我的这个求助贴,
http://bbs.pediy.com/showthread.php?s=&threadid=9080&highlight=LOADPE
或许能解决你不能DUMP的问题。
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjpvaps 2005-1-6 20:27
10
0
多谢老大的帮助,这个问题搞定了!太感谢了!
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjpvaps 2005-1-6 21:26
11
0
出现新的疑问了
在dump出dll后在输入表处找不到FLY例子中的那个IAT了
教程如下:
因为已经修改了Magic Jump,所以现在可以得到完整的输入表。随便从程序找个API调用:
008710FD     FF15 20408700       call dword ptr ds:[874020]; kernel32.GetVersion
在转存中跟随874020,上下看到许多函数地址,很明显的可以找到IAT开始和结束的地址:
        

代码:--------------------------------------------------------------------------------
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
IAT:
            
00874000  1D 51 C4 77 1C 3A C4 77 3E E7 C4 77 CC D2 C4 77  .Q.w.:.w>..w...w
00874010  50 88 A1 00 F1 7E E5 77 E1 C9 E5 77 38 C9 E5 77  P....~.w...w8..w
00874020  86 C4 E5 77 B5 5C E5 77 B4 16 E4 77 90 9C E5 77  ...w.\.w...w...w
00874030  C4 7C E5 77 39 9B E5 77 B4 C5 E5 77 29 2B E5 77  .|.w9..w...w)+.w
00874040  61 8B E5 77 31 C9 E5 77 3D 9C E5 77 06 84 E5 77  a..w1..w=..w...w
00874050  7A 17 E4 77 75 32 F5 77 99 A0 E5 77 B1 C5 E7 77  z..wu2.w...w...w
00874060  72 46 E5 77 24 99 E5 77 02 77 E4 77 E1 7E E5 77  rF.w$..w.w.w.~.w
00874070  0B 6E E5 77 26 C7 E5 77 34 9E E5 77 97 15 F5 77  .n.w&..w4..w...w
00874080  8C 9D E5 77 08 99 E5 77 1F E2 F7 77 00 E3 F7 77  ...w...w...w...w
00874090  F8 16 F5 77 9F 84 E5 77 3F A1 E5 77 03 C7 E4 77  ...w...w?..w...w
008740A0  0A 98 E5 77 2F 72 F5 77 FD A5 E5 77 D8 05 E6 77  ...w/r.w...w...w
008740B0  CE 7C E5 77 05 74 E5 77 F9 81 E5 77 EB 41 E4 77  .|.w.t.w...w.A.w
008740C0  66 C8 E5 77 3E 18 F6 77 C3 88 A1 00 00 00 00 00  f..w>..w........
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

我找的API调用是OEP上面的这个
100048AD   FF15 3CF57800    CALL DWORD PTR DS:[78F53C]               ; KERNEL32.GetVersion  ****在转存中跟随
100048B3   6A 01            PUSH 1
100048B5   A3 78D10010      MOV DWORD PTR DS:[1000D178],EAX
100048BA   E8 F10B0000      CALL mytest.100054B0
100048BF   85C0             TEST EAX,EAX
100048C1   59               POP ECX
100048C2   74 3C            JE SHORT mytest.10004900
100048C4   A1 78D10010      MOV EAX,DWORD PTR DS:[1000D178]
100048C9   33C9             XOR ECX,ECX
100048CB   8A0D 79D10010    MOV CL,BYTE PTR DS:[1000D179]
100048D1   25 FF000000      AND EAX,0FF
100048D6   C12D 78D10010 10 SHR DWORD PTR DS:[1000D178],10
100048DD   A3 80D10010      MOV DWORD PTR DS:[1000D180],EAX
100048E2   890D 84D10010    MOV DWORD PTR DS:[1000D184],ECX
100048E8   C1E0 08          SHL EAX,8
100048EB   03C1             ADD EAX,ECX
100048ED   A3 7CD10010      MOV DWORD PTR DS:[1000D17C],EAX
100048F2   E8 70020000      CALL mytest.10004B67
100048F7   85C0             TEST EAX,EAX
100048F9   75 09            JNZ SHORT mytest.10004904
100048FB   E8 0D0C0000      CALL mytest.1000550D
10004900   33C0             XOR EAX,EAX
10004902   EB 72            JMP SHORT mytest.10004976
10004904   FF15 10F57800    CALL DWORD PTR DS:[78F510]               ; KERNEL32.GetCommandLineA
1000490A   A3 38D80010      MOV DWORD PTR DS:[1000D838],EAX
1000490F   E8 F5080000      CALL mytest.10005209
10004914   A3 64D10010      MOV DWORD PTR DS:[1000D164],EAX
10004919   E8 D5030000      CALL mytest.10004CF3
1000491E   E8 99060000      CALL mytest.10004FBC
10004923   E8 DB050000      CALL mytest.10004F03
10004928   E8 1C010000      CALL mytest.10004A49
1000492D   FF05 60D10010    INC DWORD PTR DS:[1000D160]
10004933   EB 3E            JMP SHORT mytest.10004973
10004935   33C9             XOR ECX,ECX
10004937   3BC1             CMP EAX,ECX
10004939   75 2C            JNZ SHORT mytest.10004967
1000493B   390D 60D10010    CMP DWORD PTR DS:[1000D160],ECX
10004941  ^7E BD            JLE SHORT mytest.10004900
10004943   FF0D 60D10010    DEC DWORD PTR DS:[1000D160]
10004949   390D B0D10010    CMP DWORD PTR DS:[1000D1B0],ECX
1000494F   75 05            JNZ SHORT mytest.10004956
10004951   E8 31010000      CALL mytest.10004A87
10004956   E8 54050000      CALL mytest.10004EAF
1000495B   E8 5B020000      CALL mytest.10004BBB
10004960   E8 A80B0000      CALL mytest.1000550D
10004965   EB 0C            JMP SHORT mytest.10004973
10004967   83F8 03          CMP EAX,3
1000496A   75 07            JNZ SHORT mytest.10004973
1000496C   51               PUSH ECX
1000496D   E8 E1020000      CALL mytest.10004C53
10004972   59               POP ECX
10004973   6A 01            PUSH 1
10004975   58               POP EAX
10004976   C2 0C00          RETN 0C
10004979   55               PUSH EBP    ***** OEP处
1000497A   8BEC             MOV EBP,ESP
1000497C   53               PUSH EBX
1000497D   8B5D 08          MOV EBX,DWORD PTR SS:[EBP+8]
10004980   56               PUSH ESI
10004981   8B75 0C          MOV ESI,DWORD PTR SS:[EBP+C]
10004984   57               PUSH EDI
10004985   8B7D 10          MOV EDI,DWORD PTR SS:[EBP+10]

在我要脱的文件中的
100048AD   FF15 3CF57800    CALL DWORD PTR DS:[78F53C]               ; KERNEL32.GetVersion  ****在转存中跟随后为:
0078F4FC  7E 7D E6 77 8B A7 8A 00 DE A6 8A 00 11 A7 8A 00  ?忱ꞋŠꛞŠ꜑Š
0078F50C  4F A6 8A 00 D7 0E E7 77 E7 A5 8A 00 7D A6 8A 00  ꙏŠ໗矧ꗧŠ꙽Š
0078F51C  8D A7 8A 00 E0 A6 8A 00 FE 83 E6 77 CE A6 8A 00  ꞍŠꛠŠ仁忱ꛎŠ
0078F52C  3B A7 8A 00 92 A7 8A 00 6D 31 F8 77 AF 76 E6 77  ꜻŠꞒŠㅭ矸?忱
0078F53C  87 94 E6 77 16 A6 8A 00 A1 A6 8A 00 07 A6 8A 00  钇忱ꘖŠꚡŠꘇŠ
0078F54C  57 A7 8A 00 58 A7 8A 00 C3 D2 FB 74 42 A7 8A 00  ꝗŠꝘŠ틃?ꝂŠ
0078F55C  61 A6 8A 00 63 A6 8A 00 51 A6 8A 00 1C 10 FD 74  ꙡŠꙣŠꙑŠလ?
0078F56C  A6 BD FB 74 BF A7 8A 00 66 A6 8A 00 DE 1C FB 74  붦?ꞿŠꙦŠ᳞?
0078F57C  36 A7 8A 00 0C 90 E7 77 14 A6 8A 00 0B A7 8A 00  ꜶŠ?矧ꘔŠ꜋Š
0078F58C  43 A7 8A 00 61 A6 8A 00 42 A6 8A 00 A1 76 E6 77  ꝃŠꙡŠꙂŠ?忱
0078F59C  D2 17 E8 77 12 A6 8A 00 40 A5 E6 77 7C 7E E6 77  ្沉ꘒŠꕀ忱擂忱
0078F5AC  72 A6 8A 00 BF A7 8A 00 F4 B7 E6 77 70 8E E6 77  ꙲ŠꞿŠ럴忱蹰忱
0078F5BC  6D B6 E6 77 2A A7 8A 00 84 76 E6 77 BE A7 8A 00  뙭忱ꜪŠ的忱ꞾŠ
0078F5CC  FF BB FB 74 DD 0E E7 77 0C 86 E6 77 58 BB FB 74  믿?ໝ矧绦忱뭘?
0078F5DC  52 A6 8A 00 F6 76 E6 77 DE 34 E6 77 57 EB E7 77  ꙒŠ避忱㓞忱矧
0078F5EC  30 A6 8A 00 1F A7 8A 00 4A A6 8A 00 4C A7 8A 00  ꘰ŠꜟŠꙊŠꝌŠ
0078F5FC  D5 A6 8A 00 89 A7 8A 00 B3 76 E6 77 78 A6 8A 00  ꛕŠ꞉Š?忱ꙸŠ
0078F60C  A0 67 FB 74 90 A7 8A 00 E6 70 FB 74 B2 73 E6 77  ??ꞐŠ烦?玲忱
0078F61C  43 A6 8A 00 8F 1C E7 77 73 A6 8A 00 E0 7A E6 77  ꙃŠ᲏矧꙳Š章忱
0078F62C  61 A6 8A 00 5C CF E7 77 84 A6 8A 00 97 68 FB 74  ꙡŠ콜矧ꚄŠ梗?
0078F63C  16 A6 8A 00 75 A6 8A 00 DB D4 FB 74 78 B1 FC 77  ꘖŠꙵŠ퓛?노惩
0078F64C  FB A6 8A 00 E0 85 E6 77 37 A6 8A 00 98 A6 8A 00  ꛻Š?忱꘷ŠꚘŠ
0078F65C  12 C3 FB 74 49 80 E6 77 0D F0 AD BA 0D F0 AD BA  쌒?脉忱몭몭
0078F66C  0D F0 AD BA AB AB AB AB AB AB AB AB 00 00 00 00  몭ꮫꮫꮫꮫ..
0078F67C  00 00 00 00 30 01 6F 00 00 14 18 00 C0 51 82 00  ..İo᐀净‚
0078F68C  08 50 84 00 EE FE EE FE EE FE EE FE EE FE EE FE  ?„ﻮﻮﻮﻮﻮﻮ
0078F69C  EE FE EE FE                                      ﻮﻮ

跟老大的教程里不同啊!这样的
开始地址、结束地址应该是多少的啊?
烦请热心的FLY老大帮忙给出后面的一些修复参数啊,我会一步一步来学习认证这些参数的!
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjpvaps 2005-1-7 19:11
12
0
老大帮忙啊!
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2005-1-7 19:47
13
0
看yesky1的相关教程
多看教程

论坛里这么多帖子,我不可能有时间每个帖子里面的附件都去脱一下
游客
登录 | 注册 方可回帖
返回