首页
社区
课程
招聘
[原创]脱FSG2.0加的98记事本
发表于: 2006-6-25 19:35 4995

[原创]脱FSG2.0加的98记事本

2006-6-25 19:35
4995
【文章标题】: 脱FSG2.0加的98记事本
【文章作者】: 微微虫[S.T.C]
【作者邮箱】: nuxgod@163.com
【作者主页】: wwcgodsoft.ys168.com
【作者QQ号】: 86742748
【软件名称】: 加FSG2.0的记事本
【软件大小】: 29.1K
【下载地址】: 在我的主页里,因为不能上传附件
【加壳方式】: FSG 2.0 -> bart/xt
【使用工具】: OllySTC、PEiD0.94、ImportREC
【操作平台】: WinXP SP2
【作者声明】: 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【详细过程】
  一、用PEiD先查一下程序有无加壳,得到有加了壳:FSG 2.0 -> bart/xt
   
  二、用OllySTC载入程序,如下:
  
  00400154 >  8725 74A24100   XCHG DWORD PTR DS:[41A274],ESP   -->载入后到这里
                                                                  F8单步进入,
  0040015A    61              POPAD                           
  0040015B    94              XCHG EAX,ESP
  0040015C    55              PUSH EBP
  0040015D    A4              MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
  0040015E    B6 80           MOV DH,80
  00400160    FF13            CALL DWORD PTR DS:[EBX]
  00400162  ^ 73 F9           JNB SHORT FSG2_0.0040015D       -->没有回跳,按F8
  00400164    33C9            XOR ECX,ECX
  00400166    FF13            CALL DWORD PTR DS:[EBX]
  00400168    73 16           JNB SHORT FSG2_0.00400180      -->没有回跳,按F8
  0040016A    33C0            XOR EAX,EAX
  0040016C    FF13            CALL DWORD PTR DS:[EBX]
  0040016E    73 1F           JNB SHORT FSG2_0.0040018F      -->跳到0040018F
  F8来到了0040018F处:
  0040018F    AC              LODS BYTE PTR DS:[ESI]
  00400190    D1E8            SHR EAX,1
  00400192    74 2D           JE SHORT FSG2_0.004001C1       -->没有回跳,按F8
  00400194    13C9            ADC ECX,ECX
  00400196    EB 18           JMP SHORT FSG2_0.004001B0      -->跳到004001B0处
  00400198    91              XCHG EAX,ECX
  00400199    48              DEC EAX
  0040019A    C1E0 08         SHL EAX,8
  0040019D    AC              LODS BYTE PTR DS:[ESI]
  0040019E    FF53 04         CALL DWORD PTR DS:[EBX+4]
  004001A1    3B43 F8         CMP EAX,DWORD PTR DS:[EBX-8]
  004001A4    73 0A           JNB SHORT FSG2_0.004001B0
  004001A6    80FC 05         CMP AH,5
  004001A9    73 06           JNB SHORT FSG2_0.004001B1
  004001AB    83F8 7F         CMP EAX,7F
  004001AE    77 02           JA SHORT FSG2_0.004001B2
  004001B0    41              INC ECX                         -->到这里了
  004001B1    41              INC ECX
  004001B2    95              XCHG EAX,EBP
  004001B3    8BC5            MOV EAX,EBP
  004001B5    B6 00           MOV DH,0
  004001B7    56              PUSH ESI                                 ; FSG2_0.00416393
  004001B8    8BF7            MOV ESI,EDI
  004001BA    2BF0            SUB ESI,EAX
  004001BC    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
  004001BE    5E              POP ESI
  004001BF  ^ EB 9F           JMP SHORT FSG2_0.00400160          -->回跳到00400160处,用F4跳试到下一行
  004001C1    5E              POP ESI                             -->F8继续
  004001C2    AD              LODS DWORD PTR DS:[ESI]     
  004001C3    97              XCHG EAX,EDI
  004001C4    AD              LODS DWORD PTR DS:[ESI]
  004001C5    50              PUSH EAX
  004001C6    FF53 10         CALL DWORD PTR DS:[EBX+10]
  004001C9    95              XCHG EAX,EBP
  004001CA    8B07            MOV EAX,DWORD PTR DS:[EDI]
  004001CC    40              INC EAX
  004001CD  ^ 78 F3           JS SHORT FSG2_0.004001C2          -->没有回跳,按F8
  004001CF    75 03           JNZ SHORT FSG2_0.004001D4         -->这里千万不要再F8了,不信自己试一下。用F4跳试到下一行
  004001D1  - FF63 0C         JMP DWORD PTR DS:[EBX+C]                 ; FSG2_0.004010CC这是Win98记事本程序的入口点F8进入
  004001D4    50              PUSH EAX
  
  到这里来了:
  004010CC      55            DB 55                                    ;  CHAR 'U'
  004010CD      8B            DB 8B
  004010CE      EC            DB EC
  004010CF      83            DB 83
  
  窗口中右击“Analysis”-->“Analysis Code”或者Ctrl+A,分析代码:
  004010CC  /.  55            PUSH EBP                -->就是OEP,好了,转存一下,就OK了
  004010CD  |.  8BEC          MOV EBP,ESP
  004010CF  |.  83EC 44       SUB ESP,44
  004010D2  |.  56            PUSH ESI
  004010D3  |.  FF15 E4634000 CALL DWORD PTR DS:[4063E4]               ; [GetCommandLineA
  004010D9  |.  8BF0          MOV ESI,EAX
  004010DB  |.  8A00          MOV AL,BYTE PTR DS:[EAX]
  004010DD  |.  3C 22         CMP AL,22
  004010DF  |.  75 1B         JNZ SHORT FSG2_0.004010FC
  
  三、现在不要关闭OD,接着修复一下,因为脱壳后我发现不能运行它:
   
  选中004010D3这一行,右击“Follow in Dump”-->“Memory address”或者Ctrl+A:
  004010D3  |.  FF15 E4634000 CALL DWORD PTR DS:[4063E4]               ; [GetCommandLineA
  
  注意数据窗口中变化:(忘了说了数据窗口中要处于反汇编状态)
  004062E4   .  8378DA77      DD ADVAPI32.RegQueryValueExA
  004062E8   .  F06BDA77      DD ADVAPI32.RegCloseKey
  004062EC   .  E7EBDA77      DD ADVAPI32.RegSetValueExA
  004062F0   .  1BC4DC77      DD ADVAPI32.RegOpenKeyA
             .
             .
             .
  004064F8   .  27BED177      DD USER32.IsIconic
  004064FC   .  1112D277      DD USER32.PostQuitMessage
  00406500   .  9CFAD277      DD USER32.TranslateAcceleratorA
  00406504      FF            DB FF

  修复时填:
  OEP=004010CC
  RVA=62E4
  SIZE=00406504-004062E4=220
  用ImportREC修复函数就可以了。
   
  搞定!
--------------------------------------------------------------------------------
【版权声明】: 如有什么问题发E-mail给我,我的QQ不经常上。本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

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

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
微微 是我女朋友的名字。。。为了这个顶你
2006-6-25 21:11
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
3
鼓励一下
惟手熟耳
多多练习
2006-6-25 21:22
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
文章不错。由于比较简单,就不设精华了,给你精神的鼓励。:)
2006-6-25 21:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢啊
学习中。。。
2006-6-25 21:51
0
雪    币: 223
活跃值: (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
LZ是MM么。。。。。。
2006-6-25 22:21
0
雪    币: 253
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
7
不错,支持
2006-6-25 22:25
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
8
脱完应该总结一下
2006-6-26 01:17
0
雪    币: 152
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最近忙着考试,不怎么上论坛。
谢谢大家支持!继续向看学学院的各位大侠学习。
我个人认为对于FSG2.0的修复是数据窗口中找一些...dll
对于一些自我校验的就要进行相应的处理
2006-6-28 11:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我脱FSG2.0时,就是修复时候有点问题,看了你的文章,我去试一试了,
2006-6-28 19:41
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不错,支持一下!
2006-7-1 15:14
0
雪    币: 218
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
微微虫...呵呵.
2006-7-2 13:08
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hxx
13
精神的鼓励
2006-7-2 17:53
0
游客
登录 | 注册 方可回帖
返回
//