首页
社区
课程
招聘
脱fsg2.0加壳的xp记事本
发表于: 2005-8-10 14:44 4466

脱fsg2.0加壳的xp记事本

2005-8-10 14:44
4466
本人练手脱壳fsg2.0的xp记事本时,运行时出了点故障,脱壳以堆?中找到入口点,一般都一样的格式如:
0101F470    010001>notepad.010001E8
0101F474    010001>notepad.010001DC
0101F478    010001>notepad.010001DE
0101F47C    010073>notepad.0100739D  <---程序的eip
0101F480 <> 7C801D>kernel32.LoadLibraryA
0101F484 <> 7C80AC>kernel32.GetProcAddress
随即用ctrl+G来到eip处(100739d),设硬件执行断点,f9,断下来,删除断点,dump,再用常规的方法用IR1.6修复,两分钟能搞定。但不能运行,(98的记事本可以修复后运行)

跟踪如下
01002936  8BFF        mov edi,edi
01002938  55          push ebp
01002939  8BEC        mov ebp,esp
0100293B  83EC 20     sub esp,20
0100293E  56          push esi
0100293F  57          push edi
01002940  FF15 141100>call dword ptr ds:[1001114]   ; [GetCommandLineW
01002946  68 D8130001 push 1_.010013D8              ;  ASCII "RegisterPenApp"
0100294B  6A 29       push 29
0100294D  8BF8        mov edi,eax
0100294F  FF15 1C1200>call dword ptr ds:[100121C]      到此不能继续
01002955  50          push eax                       ; |hModule
01002956  FF15 101100>call dword ptr ds:[1001110]    ; \GetProcAddress
0100295C  33F6        xor esi,esi
0100295E  3BC6        cmp eax,esi
01002960  8945 FC     mov dword ptr ss:[ebp-4],eax
01002963  74 06       je short 1_.0100296B

而跟踪未加壳的记事本如下代码:

01002936   /$  8BFF        mov edi,edi
01002938   |.  55          push ebp
01002939   |.  8BEC        mov ebp,esp
0100293B   |.  83EC 20     sub esp,20
0100293E   |.  56          push esi
0100293F   |.  57          push edi
01002940   |.  FF15 141100>call dword ptr ds:[<&KERNEL32.GetCommandLineW>]  ; [GetCommandLineW
01002946   |.  68 D8130001 push notepad.010013D8                            ; /ProcNameOrOrdinal = "RegisterPenApp"
0100294B   |.  6A 29       push 29                                          ; |/Index = SM_PENWINDOWS
0100294D   |.  8BF8        mov edi,eax                                      ; ||
0100294F   |.  FF15 1C1200>call dword ptr ds:[<&USER32.GetSystemMetrics>] ; |\GetSystemMetric〈---系统认出              
01002955   |.  50          push eax                                         ; |hModule
01002956   |.  FF15 101100>call dword ptr ds:[<&KERNEL32.GetProcAddress>]   ; \GetProcAddress
0100295C   |.  33F6        xor esi,esi
0100295E   |.  3BC6        cmp eax,esi
01002960   |.  8945 FC     mov dword ptr ss:[ebp-4],eax
01002963   |.  74 06       je short notepad.0100296B

各位大虾,请问这是为何?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
检查一下输入表是否修好
2005-8-10 14:47
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 fly 发布
检查一下输入表是否修好

FLY兄 我用IR1.6修复,没手工修,一般用IR修复这类壳又快又准,难道xp下的记事本有什么特殊性?
2005-8-10 14:55
0
雪    币: 288
活跃值: (415)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
4
在ImportREC里面手动填入RVA和SIZE
印象中FSG2.0加了3个垃圾指针的,要剪掉它的
2005-8-10 16:49
0
游客
登录 | 注册 方可回帖
返回
//