首页
社区
课程
招聘
[原创]一个外挂脱壳的全过程(附加数据处理+自校验修复)
2007-3-18 22:18 15243

[原创]一个外挂脱壳的全过程(附加数据处理+自校验修复)

2007-3-18 22:18
15243
⑴脱壳:
  该外挂的壳是NsPack 1.4,这是比较少见的,呵呵。ESP定律3秒搞定。
⑵附加数据处理:
  用Stud_PE抓取原程序的附加数据,然后用WinHex将其复制,并粘贴到脱壳后的程序尾部。幸运的是,该程序全部是从end开始读取数据,不用修复指针。附加数据处理完毕,大概1分钟。运行,程序界面没显示,估计应该有自校验。
⑶自校验处理:
  查看进程目录,没有发现我们刚才运行的程序,说明该程序并不是出现内存方面的错误,应该是已经自动退出了。于是用OD装载脱壳后的程序,bp ExitProcess,F9运行,断在这里:
7C81CAA2 >  8BFF            MOV EDI,EDI
7C81CAA4    55              PUSH EBP
7C81CAA5    8BEC            MOV EBP,ESP
7C81CAA7    6A FF           PUSH -1
7C81CAA9    68 B0F3E877     PUSH 77E8F3B0
7C81CAAE    FF75 08         PUSH DWORD PTR SS:[EBP+8]
7C81CAB1    E8 46FFFFFF     CALL kernel32.7C81C9FC
7C81CAB6    E9 29CF0100     JMP kernel32.7C8399E4
堆栈:
0012FA80   100298AD  /CALL 到 ExitProcess 来自 krnln.100298A7
0012FA84   00000000  \ExitCode = 0
看到krnln了,原来是易语言程序。
我们转到100298A7这里去(在堆栈处按回车):
10029892    55              PUSH EBP
10029893    8BEC            MOV EBP,ESP
10029895    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
10029898    50              PUSH EAX
10029899    B9 10DB0E10     MOV ECX,krnln.100EDB10
1002989E    E8 4DC40200     CALL krnln.10055CF0
100298A3    8B4D 08         MOV ECX,DWORD PTR SS:[EBP+8]
100298A6    51              PUSH ECX
100298A7    FF15 D4230C10   CALL DWORD PTR DS:[100C23D4]             ; kernel32.ExitProcess         (这里)
100298AD    5D              POP EBP
100298AE    C3              RETN
我们在10029892    55              PUSH EBP下硬件执行断点。
重新开始,F9,停在这里:
10029892    55              PUSH EBP
10029893    8BEC            MOV EBP,ESP
10029895    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
10029898    50              PUSH EAX
10029899    B9 10DB0E10     MOV ECX,krnln.100EDB10
1002989E    E8 4DC40200     CALL krnln.10055CF0
100298A3    8B4D 08         MOV ECX,DWORD PTR SS:[EBP+8]
100298A6    51              PUSH ECX
100298A7    FF15 D4230C10   CALL DWORD PTR DS:[100C23D4]             ; kernel32.ExitProcess         
100298AD    5D              POP EBP
100298AE    C3              RETN
为了知道程序是从哪里CALL到这里的(观察堆栈也行),我们把这两句
100298A6    51              PUSH ECX
100298A7    FF15 D4230C10   CALL DWORD PTR DS:[100C23D4]             ; kernel32.ExitProcess
nop掉。接着我们按F8,由于那两句被nop掉了,程序并不会退出,程序会返回到这里:
0042B2AE      EB 01         JMP SHORT 3.0042B2B1
0042B2B0      0FF972 01     PSUBW MM6,QWORD PTR DS:[EDX+1]
0042B2B4      8A83 7DF4FF0F MOV AL,BYTE PTR DS:[EBX+FFFF47D]
0042B2BA      8411          TEST BYTE PTR DS:[ECX],DL
0042B2BC      0000          ADD BYTE PTR DS:[EAX],AL
0042B2BE      00EB          ADD BL,CH
0042B2C0      0178 F8       ADD DWORD PTR DS:[EAX-8],EDI
0042B2C3      73 01         JNB SHORT 3.0042B2C6
0042B2C5      0F6A00        PUNPCKHDQ MM0,QWORD PTR DS:[EAX]
0042B2C8      E8 DC0C0200   CALL 3.0044BFA9
0042B2CD      83C4 04       ADD ESP,4             (返回到这里)
上面的代码显然是花指令,我们处理一下后,得到如下代码:
0042B2AE     /EB 01         JMP SHORT 3.0042B2B1
0042B2B0     |90            NOP
0042B2B1     \F9            STC
0042B2B2      72 01         JB SHORT 3.0042B2B5
0042B2B4      90            NOP
0042B2B5      837D F4 FF    CMP DWORD PTR SS:[EBP-C],-1
0042B2B9      0F84 11000000 JE 3.0042B2D0
0042B2BF      EB 01         JMP SHORT 3.0042B2C2
0042B2C1      90            NOP
0042B2C2      F8            CLC
0042B2C3      73 01         JNB SHORT 3.0042B2C6
0042B2C5      90            NOP
0042B2C6      6A 00         PUSH 0
0042B2C8      E8 DC0C0200   CALL 3.0044BFA9
0042B2CD      83C4 04       ADD ESP,4            (返回到这里)
显然这一句0042B2B9      0F84 11000000 JE 3.0042B2D0可以跳过0042B2C8      E8 DC0C0200   CALL 3.0044BFA9(这个CALL导致程序退出),于是我们把JE改成JNZ即可!修复保存,运行,一切OK!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (23)
雪    币: 337
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
红色的 2007-3-18 22:20
2
0
顶一个
不错,支持,人人都这么写就没菜鸟了!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gamemx 2007-3-18 22:44
3
0
支持,多写点带说明的,偶这样菜鸟好学很多
雪    币: 19
活跃值: (102)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
不死神鸟 1 2007-3-18 23:43
4
0
顶你一下,别叫痛~~~~~~~~~
雪    币: 146
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
playx 1 2007-3-18 23:52
5
0
学习了!

没有地址的话,传到我的空间吧:ftp://sub:1231@61.139.55.82:7777
大家也好练习练习.
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
卡秋莎 2007-3-19 13:21
6
0
怎么去花的啊 如果给个地址,练习下就好了
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
iamcrackin 3 2007-3-19 13:45
7
0
nop掉某些字节,就可以了去花了。
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
iamcrackin 3 2007-3-19 13:46
8
0
文件有6M,传不上来!
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
卡秋莎 2007-3-19 13:59
9
0
下载地址而已,不是要你传上来
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
iamcrackin 3 2007-3-19 14:11
10
0
没地址啊,是一个朋友写的外挂!我想办法传到一个空间吧!
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
卡秋莎 2007-3-19 14:22
11
0
最初由 iamcrackin 发布
没地址啊,是一个朋友写的外挂!我想办法传到一个空间吧!


支持,主要想练习下....感觉你思路真不错..把我的捆饶解决了一半了 哈哈
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
asdwdj 2007-3-19 14:56
12
0
有下载地址吗  我要下一个试一下
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wwithout 2007-3-21 09:54
13
0
不错,顶一下。
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
asdwdj 2007-3-21 16:59
14
0
写的好啊  我也想成为高手
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
long181 2007-4-12 18:35
15
0
不错。就是没声色并茂。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
long181 2007-4-12 18:36
16
0
希望做个录像出来
雪    币: 14
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jpinglove 2007-4-12 18:34
17
0
学习了,谢谢
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nuke 2007-4-13 13:56
18
0
学习&&收藏
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
飞翔的云 2007-4-15 15:07
19
0
支持~!!!!!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chinafzl 2007-4-15 16:10
20
0
向大虾们请教个问题!我用 ResHacker 3.5 编辑工具,编辑一个外挂内容,然后有一个文件编辑不了,出现: 文件有非标准资源 它可能被"exe 压缩器"压缩了。 这个内容,请问是不是加壳了,我该用什么办法脱壳,谢谢!最好是有朋友帮我脱,我一点都不会- -!
雪    币: 209
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cqjiajia 2007-4-28 12:42
21
0
就算脱了壳有时也会提示压缩的,去主页下个修复软件
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Ajampie 2007-4-28 12:58
22
0
学习一下了。。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋凤儿 2007-4-28 13:32
23
0
各们高手们,你们好!!!  
  小弟有一事相求,这是网游《仙界传》外挂——仙界幽灵,点“仁”自动生成机器,然后向楼主每月更新费用40WXJB(游戏币)索取ID码。让大家很感不畅,麻烦大侠们费心再破解一下!!!  我是新注册不能上传,请下载网址:  http://xiaochong.siteem.com/  点击“请大家下载更新,然后索取新授权号!”下载外挂。
    十分希望,百分肯求,千分感激,万分感谢,帮帮忙吧~~~

                                                     秋凤儿 邮箱  lbw123@avl.com.cn
                                                              2007.4.28
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
foxabu 13 2007-4-28 19:54
24
0
易语言的程序不用ECE。高人。
游客
登录 | 注册 方可回帖
返回