首页
社区
课程
招聘
[原创]vfp&exeNc-内存型 7.78演示版主程序脱壳+脱壳脚本
发表于: 2007-1-14 17:18 9247

[原创]vfp&exeNc-内存型 7.78演示版主程序脱壳+脱壳脚本

2007-1-14 17:18
9247

【文章标题】: vfp&exeNc-内存型 7.78演示版主程序脱壳
【文章作者】: 小彻小悟
【作者邮箱】: 问我妈妈
【作者主页】: 问我妈妈
【作者QQ号】: 问我妈妈
【软件名称】: vfp&exeNc-内存型 7.78演示版
【软件大小】: 490K
【下载地址】: http://www.czkj.com
【加壳方式】: 压缩未知壳
【保护方式】: vfp&exeNc7.78
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: OD Imprec 1.6F
【操作平台】: Windows Sp1
【软件介绍】: 内存型加密软件,保护您的源代码.
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  今天无意只间,看见了一款新壳.看雪论坛好象没有介绍过此壳,小弟就去官方网站下了个演示版脱壳练习练习,心得不感独享,
  和广大朋友分享.(高手飘过)^-^
  
  OD设置忽略所有异常,然后OD载入主程序.
  
  00525F20 >  60              PUSHAD                  //停在这里
  00525F21    E8 01000000     CALL vfpenc78.00525F27    //F8死,F7跟:)  这里用SEP定律也是死-,-
  00525F26    6358 E8         ARPL WORD PTR DS:[EAX-18],BX
  00525F29    0100            ADD DWORD PTR DS:[EAX],EAX
  00525F2B    0000            ADD BYTE PTR DS:[EAX],AL
  00525F2D    7A 58           JPE SHORT vfpenc78.00525F87
  00525F2F    2D 0D104000     SUB EAX,vfpenc78.0040100D
  00525F34    8D90 C1104000   LEA EDX,DWORD PTR DS:[EAX+4010C1]
  00525F3A    52              PUSH EDX
  00525F3B    50              PUSH EAX
  00525F3C    8D80 49104000   LEA EAX,DWORD PTR DS:[EAX+401049]
  00525F42    5D              POP EBP
  00525F43    50              PUSH EAX
  00525F44    8D85 65104000   LEA EAX,DWORD PTR SS:[EBP+401065]
  00525F4A    50              PUSH EAX
  00525F4B    64:FF35 0000000>PUSH DWORD PTR FS:[0]
  00525F52    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
  00525F59    CC              INT3
  00525F5A    90              NOP
  00525F5B    64:8F05 0000000>POP DWORD PTR FS:[0]
  00525F62    83C4 04         ADD ESP,4
  00525F65    C3              RETN
  00525F66    EB 11           JMP SHORT vfpenc78.00525F79
  
  在00525F21代码处F7跟进
  
  00525F27    58              POP EAX                                  ; vfpenc78.00525F26 //来到这里
  00525F28    E8 01000000     CALL vfpenc78.00525F2E      //F8死 F7跟进
  00525F2D    7A 58           JPE SHORT vfpenc78.00525F87      
  00525F2F    2D 0D104000     SUB EAX,vfpenc78.0040100D
  00525F34    8D90 C1104000   LEA EDX,DWORD PTR DS:[EAX+4010C1]
  00525F3A    52              PUSH EDX
  00525F3B    50              PUSH EAX
  00525F3C    8D80 49104000   LEA EAX,DWORD PTR DS:[EAX+401049]
  00525F42    5D              POP EBP
  00525F43    50              PUSH EAX
  00525F44    8D85 65104000   LEA EAX,DWORD PTR SS:[EBP+401065]
  00525F4A    50              PUSH EAX
  00525F4B    64:FF35 0000000>PUSH DWORD PTR FS:[0]
  00525F52    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
  00525F59    CC              INT3
  00525F5A    90              NOP
  00525F5B    64:8F05 0000000>POP DWORD PTR FS:[0]
  00525F62    83C4 04         ADD ESP,4
  00525F65    C3              RETN
  
  
  
  继续。。在00525F28处 F7跟进后
  
  
  00525F2E    58              POP EAX                                  ; vfpenc78.00525F2D //来到这里
  00525F2F    2D 0D104000     SUB EAX,vfpenc78.0040100D
  00525F34    8D90 C1104000   LEA EDX,DWORD PTR DS:[EAX+4010C1]
  00525F3A    52              PUSH EDX
  00525F3B    50              PUSH EAX
  00525F3C    8D80 49104000   LEA EAX,DWORD PTR DS:[EAX+401049]
  00525F42    5D              POP EBP
  00525F43    50              PUSH EAX
  00525F44    8D85 65104000   LEA EAX,DWORD PTR SS:[EBP+401065]
  00525F4A    50              PUSH EAX
  00525F4B    64:FF35 0000000>PUSH DWORD PTR FS:[0]
  00525F52    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
  00525F59    CC              INT3                              //F8这里死 返回系统领空
  00525F5A    90              NOP
  00525F5B    64:8F05 0000000>POP DWORD PTR FS:[0]            //在这里F2 SHIFT+F9运行到这里
  00525F62    83C4 04         ADD ESP,4
  00525F65    C3              RETN
  00525F66    EB 11           JMP SHORT vfpenc78.00525F79
  00525F68    59              POP ECX
  00525F69    8D9D 00104000   LEA EBX,DWORD PTR SS:[EBP+401000]
  00525F6F    53              PUSH EBX
  00525F70    5F              POP EDI
  00525F71    2BFA            SUB EDI,EDX
  00525F73    57              PUSH EDI
  00525F74    8A03            MOV AL,BYTE PTR DS:[EBX]
  00525F76    3007            XOR BYTE PTR DS:[EDI],AL                 ; 异常
  00525F78    43              INC EBX
  00525F79    47              INC EDI
  00525F7A  ^ E2 F8           LOOPD SHORT vfpenc78.00525F74     //不让他回跳
  00525F7C    58              POP EAX                           //F4到这里
  00525F7D    894424 1C       MOV DWORD PTR SS:[ESP+1C],EAX
  00525F81    61              POPAD                            //当然,直接这里也可以
  00525F82    FFE0            JMP EAX                         //让它跳把 不是OEP哦```
  
  
  ----------------------------------------------------------------------------------------------------------
  
  
  00524001    60              PUSHAD                //跳到这里来了,看代码就知道不是OEP-,-
  00524002    E8 03000000     CALL vfpenc78.0052400A    //E注意寄存器 ESP=0012ffa0(你的机器我不敢保证一样的)
  00524007  - E9 EB045D45     JMP 45AF44F7
  0052400C    55              PUSH EBP
  0052400D    C3              RETN
  0052400E    E8 01000000     CALL vfpenc78.00524014
  00524013    EB 5D           JMP SHORT vfpenc78.00524072
  00524015    BB EDFFFFFF     MOV EBX,-13
  0052401A    03DD            ADD EBX,EBP
  0052401C    81EB 00401200   SUB EBX,124000
  00524022    83BD 22040000 0>CMP DWORD PTR SS:[EBP+422],0
  00524029    899D 22040000   MOV DWORD PTR SS:[EBP+422],EBX
  0052402F    0F85 65030000   JNZ vfpenc78.0052439A
  00524035    8D85 2E040000   LEA EAX,DWORD PTR SS:[EBP+42E]
  0052403B    50              PUSH EAX
  0052403C    FF95 4D0F0000   CALL DWORD PTR SS:[EBP+F4D]
  00524042    8985 26040000   MOV DWORD PTR SS:[EBP+426],EAX
  00524048    8BF8            MOV EDI,EAX
  0052404A    8D5D 5E         LEA EBX,DWORD PTR SS:[EBP+5E]
  0052404D    53              PUSH EBX
  0052404E    50              PUSH EAX
  0052404F    FF95 490F0000   CALL DWORD PTR SS:[EBP+F49]
  00524055    8985 4D050000   MOV DWORD PTR SS:[EBP+54D],EAX
  0052405B    8D5D 6B         LEA EBX,DWORD PTR SS:[EBP+6B]
  
  
  
  
  动作
  
  在ESP那一行鼠标又键,数据窗口跟随.
  
  看下面的数据窗口
  0012FFA0  00525FE1  vfpenc78.00525FE1
  
  右键,断点,硬件访问,字  F9运行
  
  005243B0   /75 08           JNZ SHORT vfpenc78.005243BA  //运行后来到这里
  005243B2   |B8 01000000     MOV EAX,1
  005243B7   |C2 0C00         RETN 0C
  005243BA   \68 43854D00     PUSH vfpenc78.004D8543
  005243BF    C3              RETN                            //这里返回
  005243C0    8B85 26040000   MOV EAX,DWORD PTR SS:[EBP+426]
  005243C6    8D8D 3B040000   LEA ECX,DWORD PTR SS:[EBP+43B]
  005243CC    51              PUSH ECX
  005243CD    50              PUSH EAX
  005243CE    FF95 490F0000   CALL DWORD PTR SS:[EBP+F49]
  005243D4    8985 55050000   MOV DWORD PTR SS:[EBP+555],EAX
  005243DA    8D85 47040000   LEA EAX,DWORD PTR SS:[EBP+447]
  005243E0    50              PUSH EAX
  005243E1    FF95 510F0000   CALL DWORD PTR SS:[EBP+F51]
  
  --------------------------------------------------------------------------------------------------------------------
  
  
  004D8543    60              PUSHAD               //返回到这里   记得清除上面的断点,养成一个好习惯!
  004D8544    E8 00000000     CALL vfpenc78.004D8549
  004D8549    5D              POP EBP
  004D854A    81ED 06104000   SUB EBP,vfpenc78.00401006
  004D8550    8D85 56104000   LEA EAX,DWORD PTR SS:[EBP+401056]
  004D8556    50              PUSH EAX
  004D8557    64:FF35 0000000>PUSH DWORD PTR FS:[0]
  004D855E    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
  004D8565    CC              INT3                       //返回到系统领空
  004D8566    90              NOP
  004D8567    64:8F05 0000000>POP DWORD PTR FS:[0]     //F2断下,SHIFT+F9运行到这里,F4死。。
  004D856E    83C4 04         ADD ESP,4
  004D8571    74 05           JE SHORT vfpenc78.004D8578
  004D8573    75 03           JNZ SHORT vfpenc78.004D8578
  004D8575    EB 07           JMP SHORT vfpenc78.004D857E
  004D8577    59              POP ECX
  004D8578    8D9D 00104000   LEA EBX,DWORD PTR SS:[EBP+401000]
  004D857E    53              PUSH EBX
  004D857F    5F              POP EDI
  004D8580    2BFA            SUB EDI,EDX
  004D8582    57              PUSH EDI
  004D8583    8A03            MOV AL,BYTE PTR DS:[EBX]
  004D8585    3007            XOR BYTE PTR DS:[EDI],AL
  004D8587    43              INC EBX
  004D8588    47              INC EDI
  004D8589  ^ E2 F8           LOOPD SHORT vfpenc78.004D8583
  004D858B    58              POP EAX                          
  004D858C    894424 1C       MOV DWORD PTR SS:[ESP+1C],EAX
  004D8590    61              POPAD                           
  004D8591    FFE0            JMP EAX                     //飞象光明之颠^-^
  004D8593    74 60           JE SHORT vfpenc78.004D85F5
  004D8595    75 5E           JNZ SHORT vfpenc78.004D85F5
  004D8597    EB 55           JMP SHORT vfpenc78.004D85EE
  004D8599    55              PUSH EBP
  
拿自带插件脱之,Imprec 1.6F 出场
  
OEP输入 D8591 自动获IAT表 抓取修复文件 运行正常^-^
  
查壳为Borland Delphi 6.0 - 7.0

----------------------------------------------------------------------
  
  
脱壳脚本:
/////////////////////////
//For vfpenc78,By wynney
#log
Var Addr1
Var Addr2
Var VirtualFree
log eip
cmt eip, "请忽略所有异常"
GPA "VirtualFree","kernel32.dll"
CMP $RESULT,0
JE ERR
MOV VirtualFree,$RESULT
BP VirtualFree            
RUN
RUN
BC VirtualFree
RTU
find eip,#68????????C3#
CMP $RESULT,0
JE ERR
MOV Addr1,$RESULT
BP Addr1
RUN
BC Addr1
STO
STO
find eip,#61FFE0#
CMP $RESULT,0
JE ERR
MOV Addr2,$RESULT+1
BP Addr2
RUN
BC Addr2
STO
log eip
cmt eip, "This is the OEP!  Found By: wynney "  
RET

ERR:
MSG "error"
RET
/////////////////////////////

----------------------------------------------------------------------
【经验总结】
  注意2个返回系统领空的位置就OK
  
  另外 感谢  peaceclub KanXue Fly 大彻大悟 machenglin wynney laomms xxdoc forgot monkeycz  一直以来对我的帮助
  
  祝大家2007新的一年 身体健康 万事如意 金猪大发
  
  引用forgot老大的一句名言  写破文比脱壳难-,-
  

脱壳脚本是 wynney大侠所写 再次感谢wynney大侠 完美了这个破文:)
----------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年01月14日


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

收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 47147
活跃值: (20465)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
最初由 小彻小悟 发布
【作者邮箱】: 看雪不让说
【作者主页】: 看雪不让说
【作者QQ号】: 看雪不让说
........


很幽默,论坛并没有规定不让公布自己主页/邮箱等信息,只是不欢迎那些带广告性质的,如有偿破解、求破解等。
2007-1-14 17:26
0
雪    币: 14
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
3
最初由 kanxue 发布
很幽默,论坛并没有规定不让公布自己主页/邮箱等信息,只是不欢迎那些带广告性质的,如有偿破解、求破解等。


新人发帖 骗个精华都不给啊 这样冷的天

虽然技术含量不高 但是是个新壳啊 哈哈
2007-1-14 17:35
0
雪    币: 47147
活跃值: (20465)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
最初由 小彻小悟 发布
新人发帖 骗个精华都不给啊 这样冷的天

虽然技术含量不高 但是是个新壳啊 哈哈


骗技有待提高 ;)
这帖离精华帖还有些距离,希望你继续努力。虽没有精华,但现你己转正,没发帖限制了。
2007-1-14 17:43
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
5
下次记得写个ollyscript就会有精华了
2007-1-14 17:53
0
雪    币: 14
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
6
最初由 forgot 发布
下次记得写个ollyscript就会有精华了


有没写脚本的教程

或者 forgot 写个脚本帮我解释下

帮我骗个精华啊 哈哈
2007-1-14 18:32
0
雪    币: 863
活跃值: (242)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
跟以前的NC版本脱法没什么区别!!!
2007-1-14 22:59
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
8
忽略所有异常
bp VirtualFree 中断2次(删除断点) Alt+F9返回

Ctrl+B:68 ?? ?? ?? ?? C3  
F2,Shift+F9,F8

Ctrl+B:61 FF E0
EIP+1 ,F2,Shift+F9,F8到达OEP

用这个去写脚本,呵呵,很短很短
2007-1-14 23:11
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 TopHill 发布
跟以前的NC版本脱法没什么区别!!!


楼上的高人``

NC版本是什么玩意?
2007-1-14 23:12
0
雪    币: 14
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
10
最初由 wynney 发布
忽略所有异常
bp VirtualFree 中断2次(删除断点) Alt+F9返回

Ctrl+B:68 ?? ?? ?? ?? C3
F2,Shift+F9,F8
........


先感谢wynney

没写过脚本

不知道脚本语言 能列出来么?
2007-1-14 23:16
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
11
/////////////////////////
//For vfpenc78,By wynney
#log
Var Addr1
Var Addr2
Var VirtualFree
log eip
cmt eip, "请忽略所有异常"
GPA "VirtualFree","kernel32.dll"
CMP $RESULT,0
JE ERR
MOV VirtualFree,$RESULT
BP VirtualFree            
RUN
RUN
BC VirtualFree
RTU
find eip,#68????????C3#
CMP $RESULT,0
JE ERR
MOV Addr1,$RESULT
BP Addr1
RUN
BC Addr1
STO
STO
find eip,#61FFE0#
CMP $RESULT,0
JE ERR
MOV Addr2,$RESULT+1
BP Addr2
RUN
BC Addr2
STO
log eip
cmt eip, "This is the OEP!  Found By: wynney "  
RET

ERR:
MSG "error"
RET
/////////////////////////////
这么简单的东西
看得懂吧
2007-1-14 23:34
0
雪    币: 14
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
12
感谢 wynney
大侠指点 脚本慢慢学习`

2007-1-14 23:45
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
13
这个壳我遇到过几次,当时看雪确实没有相关文章,所以放弃那。
多谢楼主分享
2007-1-16 08:54
0
雪    币: 14
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
14
最初由 binbinbin 发布
这个壳我遇到过几次,当时看雪确实没有相关文章,所以放弃那。
多谢楼主分享


大哥见笑了 这么多精华 是懒的研究这个破壳把?
2007-1-16 12:58
0
雪    币: 158
活跃值: (43)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
【作者邮箱】: 问我妈妈
【作者主页】: 问我妈妈
【作者QQ号】: 问我妈妈

2007-1-21 13:50
0
游客
登录 | 注册 方可回帖
返回
//