首页
社区
课程
招聘
在98系统下用OD脱PEtite 2.X壳一法
发表于: 2004-11-22 01:13 8869

在98系统下用OD脱PEtite 2.X壳一法

2004-11-22 01:13
8869
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
[color=#008000];载入程序后选不分析代码后将中断在0040D042外壳的入口处[/color]
[color=#008000];经这跟踪,得知以下代码只是解压数据,不必细跟,现按F9直接运行程序[/color]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
0040D042 >  B8 00D04000     [color=#0000D0]MOV[/color] [color=#FF0000]EAX[/color],NOTEPAD.0040D000
0040D047    68 4C584000     [color=#0000D0]PUSH[/color] NOTEPAD.0040584C	[color=#008000];0040584c入栈,[/color]
0040D04C    64:FF35 0000000>[color=#0000D0]PUSH[/color] [color=#FF00FF]DWORD[/color] PTR [color=#FF0000]FS[/color]:[0]	[color=#008000];记住这个地址[/color]
0040D053    64:8925 0000000>[color=#0000D0]MOV[/color] [color=#FF00FF]DWORD[/color] PTR [color=#FF0000]FS[/color]:[0],[color=#FF0000]ESP[/color]	[color=#008000];挂SEH,当程序产生异常后将跳到0040584C处继续运行。[/color]
0040D05A    66:9C           PUSHFW
0040D05C    60              [color=#0000D0]PUSHAD[/color]
0040D05D    50              [color=#0000D0]PUSH[/color] [color=#FF0000]EAX[/color]
0040D05E    68 00004000     [color=#0000D0]PUSH[/color] NOTEPAD.00400000
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
[color=#008000];当程序数据解压完毕后将在这里产生一个写入异常[/color]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
0040D135    A4              [color=#0000D0]MOVS[/color] [color=#FF00FF]BYTE[/color] PTR [color=#FF0000]ES[/color]:[[color=#FF0000]EDI[/color]],[color=#FF00FF]BYTE[/color] PTR [color=#FF0000]DS[/color]:[[color=#FF0000]ESI[/color]]	[color=#008000];产生内存写入异常[/color]
0040D136    33C9            [color=#0000D0]XOR[/color] [color=#FF0000]ECX[/color],[color=#FF0000]ECX[/color]
0040D138    83FB 00         [color=#0000D0]CMP[/color] [color=#FF0000]EBX[/color],0
0040D13B  ^ 7E A4           [color=#0000D0]JLE[/color] SHORT NOTEPAD.0040D0E1
0040D13D    E8 AAFFFFFF     [color=#0000D0]CALL[/color] NOTEPAD.0040D0EC

0040D135    A4              [color=#0000D0]MOVS[/color] [color=#FF00FF]BYTE[/color] PTR [color=#FF0000]ES[/color]:[[color=#FF0000]EDI[/color]],[color=#FF00FF]BYTE[/color] PTR [color=#FF0000]DS[/color]:[[color=#FF0000]ESI[/color]]
0040D136    33C9            [color=#0000D0]XOR[/color] [color=#FF0000]ECX[/color],[color=#FF0000]ECX[/color]
0040D138    83FB 00         [color=#0000D0]CMP[/color] [color=#FF0000]EBX[/color],0
0040D13B  ^ 7E A4           [color=#0000D0]JLE[/color] SHORT NOTEPAD.0040D0E1
0040D13D    E8 AAFFFFFF     [color=#0000D0]CALL[/color] NOTEPAD.0040D0EC
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
[color=#008000];在前面我们已经知道程序产生异常后将跳到0040584C处继续运行[/color]
[color=#008000];所以我们在命令行中输入“BP 0040584C"处下一个INT 3断点[/color]
[color=#008000];按Shift+F9运行忽略异常,程序将中断在0040584C处,[/color]
[color=#008000];到这里后我们就要慢慢的跟踪了。[/color]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
0040584C    E8 4F000000     [color=#0000D0]CALL[/color] NOTEPAD.004058A0	[color=#008000];变形Call,F7进入[/color]
00405851    D9D7            [color=#0000D0]FST[/color] [color=#FF0000]EDI[/color]
00405853  ^ 71 AC           [color=#0000D0]JNO[/color] SHORT NOTEPAD.00405801
00405855  ^ E0 B9           LOOPDNE SHORT NOTEPAD.00405810
00405857    58              [color=#0000D0]POP[/color] [color=#FF0000]EAX[/color]
00405858    098E CDC22DD8   [color=#0000D0]OR[/color] [color=#FF00FF]DWORD[/color] PTR [color=#FF0000]DS[/color]:[[color=#FF0000]ESI[/color]+D82DC2CD],[color=#FF0000]ECX[/color]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
[color=#008000];进入后到这里,[/color]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
004058A0    33C0            [color=#0000D0]XOR[/color] [color=#FF0000]EAX[/color],[color=#FF0000]EAX[/color]
004058A2    5E              [color=#0000D0]POP[/color] [color=#FF0000]ESI[/color]
004058A3    64:8B18         [color=#0000D0]MOV[/color] [color=#FF0000]EBX[/color],[color=#FF00FF]DWORD[/color] PTR [color=#FF0000]FS[/color]:[[color=#FF0000]EAX[/color]]
004058A6    8B1B            [color=#0000D0]MOV[/color] [color=#FF0000]EBX[/color],[color=#FF00FF]DWORD[/color] PTR [color=#FF0000]DS[/color]:[[color=#FF0000]EBX[/color]]
004058A8    8D63 D6         [color=#0000D0]LEA[/color] [color=#FF0000]ESP[/color],[color=#FF00FF]DWORD[/color] PTR [color=#FF0000]DS[/color]:[[color=#FF0000]EBX[/color]-2A]
004058AB    5D              [color=#0000D0]POP[/color] [color=#FF0000]EBP[/color]
004058AC    8D8E BD020000   [color=#0000D0]LEA[/color] [color=#FF0000]ECX[/color],[color=#FF00FF]DWORD[/color] PTR [color=#FF0000]DS[/color]:[[color=#FF0000]ESI[/color]+2BD]
004058B2    894B 04         [color=#0000D0]MOV[/color] [color=#FF00FF]DWORD[/color] PTR [color=#FF0000]DS[/color]:[[color=#FF0000]EBX[/color]+4],[color=#FF0000]ECX[/color]
004058B5    64:891D 0000000>[color=#0000D0]MOV[/color] [color=#FF00FF]DWORD[/color] PTR [color=#FF0000]FS[/color]:[0],[color=#FF0000]EBX[/color]
004058BC    8B3C24          [color=#0000D0]MOV[/color] [color=#FF0000]EDI[/color],[color=#FF00FF]DWORD[/color] PTR [color=#FF0000]SS[/color]:[[color=#FF0000]ESP[/color]]
004058BF    81C7 39000000   [color=#0000D0]ADD[/color] [color=#FF0000]EDI[/color],39
004058C5    6A 0E           [color=#0000D0]PUSH[/color] 0E
004058C7    59              [color=#0000D0]POP[/color] [color=#FF0000]ECX[/color]
004058C8    F3:A4           [color=#0000D0]REP[/color] [color=#0000D0]MOVS[/color] [color=#FF00FF]BYTE[/color] PTR [color=#FF0000]ES[/color]:[[color=#FF0000]EDI[/color]],[color=#FF00FF]BYTE[/color] PTR [color=#FF0000]DS[/color]:[>
004058CA    FF33            [color=#0000D0]PUSH[/color] [color=#FF00FF]DWORD[/color] PTR [color=#FF0000]DS[/color]:[[color=#FF0000]EBX[/color]]
004058CC    56              [color=#0000D0]PUSH[/color] [color=#FF0000]ESI[/color]
004058CD    57              [color=#0000D0]PUSH[/color] [color=#FF0000]EDI[/color]
004058CE    8DB7 71010000   [color=#0000D0]LEA[/color] [color=#FF0000]ESI[/color],[color=#FF00FF]DWORD[/color] PTR [color=#FF0000]DS[/color]:[[color=#FF0000]EDI[/color]+171]
004058D4    8BCE            [color=#0000D0]MOV[/color] [color=#FF0000]ECX[/color],[color=#FF0000]ESI[/color]
004058D6    2BCF            [color=#0000D0]SUB[/color] [color=#FF0000]ECX[/color],[color=#FF0000]EDI[/color]
004058D8    F3:AA           [color=#0000D0]REP[/color] [color=#0000D0]STOS[/color] [color=#FF00FF]BYTE[/color] PTR [color=#FF0000]ES[/color]:[[color=#FF0000]EDI[/color]]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
[color=#008000];单步运行到这里时,程序开始设置单步异常[/color]
[color=#008000];这时,不能再单步跟踪了,不然等下解压出的代码就不正确了[/color]
[color=#008000];按F9运行程序[/color]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
004058DA    60              [color=#0000D0]PUSHAD[/color]
004058DB    66:9C           PUSHFW
004058DD    0FBA3C24 08     [color=#0000D0]BTC[/color] [color=#FF00FF]DWORD[/color] PTR [color=#FF0000]SS[/color]:[[color=#FF0000]ESP[/color]],8
004058E2    66:9D           POPFW
004058E4    5B              [color=#0000D0]POP[/color] [color=#FF0000]EBX[/color]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
[color=#008000];单步异常,我们在004058E6处下一个断点,按Shift+F9忽略异常[/color]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
004058E5    5A              [color=#0000D0]POP[/color] [color=#FF0000]EDX[/color]			[color=#008000];单步异常[/color]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
[color=#008000];程序中断这里,POP DWORD PTR FS:[0]语句,典型的释放异常代码[/color]
[color=#008000];到这里开始程序已常没有异常了。[/color]
[color=#008000];>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/color]
004058E6    64:8F05 0000000>[color=#0000D0]POP[/color] [color=#FF00FF]DWORD[/color] PTR [color=#FF0000]FS[/color]:[0]	[color=#008000];释放异常[/color]
004058ED    58              [color=#0000D0]POP[/color] [color=#FF0000]EAX[/color]
004058EE    6A 00           [color=#0000D0]PUSH[/color] 0
004058F0    53              [color=#0000D0]PUSH[/color] [color=#FF0000]EBX[/color]
004058F1    33DB            [color=#0000D0]XOR[/color] [color=#FF0000]EBX[/color],[color=#FF0000]EBX[/color]
004058F3    68 3D030000     [color=#0000D0]PUSH[/color] 33D

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 7
支持
分享
最新回复 (12)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
小虾就是战神啊,支持啊
2004-11-22 01:42
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
顶!
2004-11-22 09:36
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习
2004-11-22 10:55
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你在OD下面看到的FS:[22]的值是多少啊?
我Win98随便加了个程序,FS:[22]访问不到?
Fs:[34]到是可以访问到的,也不知道插件的
下标是什么进制的

最初由 小虾 发布
【标  题】在98系统下用OD脱PEtite 2.X壳一法

【作  者】小虾(战神[DFCG])

【日  期】2004-11-22
........
2004-11-22 14:54
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
最初由 limee 发布
你在OD下面看到的FS:[22]的值是多少啊?
我Win98随便加了个程序,FS:[22]访问不到?
Fs:[34]到是可以访问到的,也不知道插件的
下标是什么进制的

........

十进制的34正是十六进制的22。
2004-11-22 16:09
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
那在插件的输入框内打
dd fs:[34]
显示的是fs:[34],还是fs:[52]?
插件内的数字无后缀H是表示10进制,还是16进制?

我的Win98下
dd fs:[22]是没有权限访问.
dd fs:[34]是一个00000001的DWord,
反正先给你参考一下吧

最初由 小虾 发布

十进制的34正是十六进制的22。
2004-11-22 18:08
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
最初由 limee 发布
那在插件的输入框内打
dd fs:[34]
显示的是fs:[34],还是fs:[52]?
插件内的数字无后缀H是表示10进制,还是16进制?

........

在98系统中OD是没办法读取FS:[22h]的地址的内容,我是用汇编编一个小程序来读取FS:[22h]的内容,然后再用对话框显示出来。以下是测试程序,你可以看看正常运行和用OD加载运行得出的值变化多大。:D 附件:test.rar
2004-11-22 22:09
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
直接运行是20b10000
OD是b1918648
Trw2000是33310000
你参考一下吧,希望对你有帮助

最初由 小虾 发布

在98系统中OD是没办法读取FS:[22h]的地址的内容,我是用汇编编一个小程序来读取FS:[22h]的内容,然后再用对话框显示出来。以下是测试程序,你可以看看正常运行和用OD加载运行得出的值变化多大。:D 附件:test.rar
2004-11-23 02:52
0
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
10
学习了,支持
2004-11-23 08:15
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
   学习中!
2004-12-12 08:59
0
雪    币: 106821
活跃值: (202484)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
12
支持!!!
2004-12-12 09:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习!!!
2004-12-13 01:03
0
游客
登录 | 注册 方可回帖
返回