脱FSG2.0加的98记事本
【文章标题】: 脱FSG2.0加的98记事本【文章作者】: 微微虫
【作者邮箱】:[email protected]
【作者主页】: 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:,ESP -->载入后到这里
F8单步进入,
0040015A 61 POPAD
0040015B 94 XCHG EAX,ESP
0040015C 55 PUSH EBP
0040015D A4 MOVS BYTE PTR ES:,BYTE PTR DS:
0040015E B6 80 MOV DH,80
00400160 FF13 CALL DWORD PTR DS:
00400162^ 73 F9 JNB SHORT FSG2_0.0040015D -->没有回跳,按F8
00400164 33C9 XOR ECX,ECX
00400166 FF13 CALL DWORD PTR DS:
00400168 73 16 JNB SHORT FSG2_0.00400180 -->没有回跳,按F8
0040016A 33C0 XOR EAX,EAX
0040016C FF13 CALL DWORD PTR DS:
0040016E 73 1F JNB SHORT FSG2_0.0040018F -->跳到0040018F
F8来到了0040018F处:
0040018F AC LODS BYTE PTR DS:
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:
0040019E FF53 04 CALL DWORD PTR DS:
004001A1 3B43 F8 CMP EAX,DWORD PTR DS:
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:,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:
004001C3 97 XCHG EAX,EDI
004001C4 AD LODS DWORD PTR DS:
004001C5 50 PUSH EAX
004001C6 FF53 10 CALL DWORD PTR DS:
004001C9 95 XCHG EAX,EBP
004001CA 8B07 MOV EAX,DWORD PTR DS:
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: ; 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: ; [GetCommandLineA
004010D9|.8BF0 MOV ESI,EAX
004010DB|.8A00 MOV AL,BYTE PTR DS:
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: ; [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不经常上。本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
[ 本帖最后由 微微虫 于 2006-6-25 19:45 编辑 ] 支持兄弟,呵呵!
这个壳脱它不难,关键在于修复. 试了下,很不错,明白了不少
[ 本帖最后由 30903861 于 2006-6-26 17:48 编辑 ] 呵呵,不知道为什么加了FSG壳的程序在我电脑里运行不起来,跑到看雪下了个主程序也同样运行不起来,但是楼上脱后的就可以,不知那位有没有脱壳后的FSG主程序,可否给小弟发一份??
邮箱:[email protected]
已经收到了,可以运行,不过试着加了一个记事本,弹出一个错误窗口:
可以是兼容性的问题吧,2.0版的都不行,我的系统是:
系统:
Microsoft Windows Server 2003
Enterprise Edition
Service Pack 2
计算机:
Intel(R) Core(TM)2 CPU
T5500@ 1.66GHz
1.67 GHz, 2.00 GB 的内存
物理地址扩展
[ 本帖最后由 iawen 于 2007-10-11 10:06 编辑 ] 注意数据窗口中变化:(忘了说了数据窗口中要处于反汇编状态)
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
/:L 这里看不懂,我的OD怎么没怎么变来着..... 我又找到这里了温习/:014 4楼的情况,我的也常出现呀 好贴!学习学习了!顶一下/:013 支持下,学习了。 好贴!学习学习了!顶一下
页:
[1]
2