真正的菜鸟的第二脱——PSG 2.0 -bart/xt 出问题,经求助,已解决,好爽!哈哈
本帖最后由 realright 于 2010-3-14 10:05 编辑真正的菜鸟的第二脱——PSG 2.0 ->bart/xt 出现问题了,求助
闲话少扯,主题为要。
加壳软件:PSG 2.0 后面有附件
加壳文件:notepad.exe
文件名:PSG_Jsb
略去加壳过程
1. 查壳
peid查壳,如下:
2. 脱壳
od载入,入口代码如下:
01000154 >8725 5CF40101 xchg dword ptr , esp //停在这里,f8往下
0100015A 61 popad //很奇怪,popad出现在这里了,壳下面没有跳转阿???莫名其妙,下吧
0100015B 94 xchg eax, esp
0100015C 55 push ebp
0100015D A4 movs byte ptr es:, byte ptr [esi>
0100015E B6 80 mov dh, 80
01000160 FF13 call dword ptr //到这里call了,很近,那就跟吧,f7,会跳到010001e8处
//f8慢慢出来,要是嵌套call也进去,最后能出来就行
01000162^ 73 F9 jnb short 0100015D //出来后在这里,往上的跳,f4过掉它
01000164 33C9 xor ecx, ecx
01000166 FF13 call dword ptr //也是call同理处理,下面还有好几个,同理了
01000168 73 16 jnb short 01000180
0100016A 33C0 xor eax, eax
0100016C FF13 call dword ptr //call,进去
0100016E 73 1F jnb short 0100018F
01000170 B6 80 mov dh, 80
01000172 41 inc ecx
01000173 B0 10 mov al, 10
01000175 FF13 call dword ptr //进去
01000177 12C0 adc al, al
01000179^ 73 FA jnb short 01000175
0100017B 75 3A jnz short 010001B7
0100017D AA stos byte ptr es:
0100017E^ EB E0 jmp short 01000160
01000180 FF53 08 call dword ptr //进去
01000183 02F6 add dh, dh
01000185 83D9 01 sbb ecx, 1
01000188 75 0E jnz short 01000198
0100018A FF53 04 call dword ptr //进去
0100018D EB 24 jmp short 010001B3//最后出来会在这里,是一个跳,往下
0100018F AC lods byte ptr
01000190 D1E8 shr eax, 1
01000192 74 2D je short 010001C1
01000194 13C9 adc ecx, ecx
01000196 EB 18 jmp short 010001B0
01000198 91 xchg eax, ecx
01000199 48 dec eax
0100019A C1E0 08 shl eax, 8
0100019D AC lods byte ptr
0100019E FF53 04 call dword ptr
010001A1 3B43 F8 cmp eax, dword ptr
010001A4 73 0A jnb short 010001B0
010001A6 80FC 05 cmp ah, 5
010001A9 73 06 jnb short 010001B1
010001AB 83F8 7F cmp eax, 7F
010001AE 77 02 ja short 010001B2
010001B0 41 inc ecx
010001B1 41 inc ecx
010001B2 95 xchg eax, ebp
010001B3 8BC5 mov eax, ebp //跳到这里了,往下
010001B5 B6 00 mov dh, 0
010001B7 56 push esi
010001B8 8BF7 mov esi, edi
010001BA 2BF0 sub esi, eax
010001BC F3:A4 rep movs byte ptr es:, byte ptr>//这里好像过不去,f4过了
010001BE 5E pop esi
010001BF^ EB 9F jmp short 01000160 //往上的跳,f4过了
010001C1 5E pop esi
010001C2 AD lods dword ptr
010001C3 97 xchg eax, edi
010001C4 AD lods dword ptr
010001C5 50 push eax
010001C6 FF53 10 call dword ptr //又是call,这么远了,不进去了,f4过吧
010001C9 95 xchg eax, ebp
010001CA 8B07 mov eax, dword ptr
010001CC 40 inc eax
010001CD^ 78 F3 js short 010001C2 //跳转没有实现
010001CF 75 03 jnz short 010001D4 //往下的,下好了,注意点1
010001D1 FF63 0C jmp dword ptr
010001D4 50 push eax //跳到这,我觉得不大对劲,因为下面有push ebp了
//而且前面还有一个jmp直接过了,我重载了,再次走到注意点1
//这次我没有让它往下跳,f4过到jmp语句了,然后跟随进去,删掉分析
//发现代码如下:(把下面的代码翻到地吧)
010001D5 55 push ebp
010001D6 FF53 14 call dword ptr
010001D9 AB stos dword ptr es:
010001DA^ EB EE jmp short 010001CA
010001DC 33C9 xor ecx, ecx
010001DE 41 inc ecx
010001DF FF13 call dword ptr
010001E1 13C9 adc ecx, ecx
010001E3 FF13 call dword ptr
010001E5^ 72 F8 jb short 010001DF
010001E7 C3 retn
010001E8 02D2 add dl, dl
010001EA 75 05 jnz short 010001F1
010001EC 8A16 mov dl, byte ptr
010001EE 46 inc esi
010001EF 12D2 adc dl, dl
第二次重载后,跟随jmp进去并删掉分析后的代码:
0100739D 6A 70 push 70 //貌似这个就是oep吗?试试吧,新建eip,dump,保存为1.exe
0100739F 68 98180001 push 01001898
010073A4 E8 BF010000 call 01007568
010073A9 33DB xor ebx, ebx
010073AB 53 push ebx
010073AC 8B3D CC100001 mov edi, dword ptr ; kernel32.GetModuleHandleA
010073B2 FFD7 call edi
010073B4 66:8138 4D5A cmp word ptr , 5A4D
010073B9 75 1F jnz short 010073DA
010073BB 8B48 3C mov ecx, dword ptr
010073BE 03C8 add ecx, eax
010073C0 8139 50450000 cmp dword ptr , 4550
010073C6 75 12 jnz short 010073DA
010073C8 0FB741 18 movzx eax, word ptr
010073CC 3D 0B010000 cmp eax, 10B
010073D1 74 1F je short 010073F2
010073D3 3D 0B020000 cmp eax, 20B
010073D8 74 05 je short 010073DF
010073DA 895D E4 mov dword ptr , ebx
010073DD EB 27 jmp short 01007406
双击桌面上的文件,错误:无法找到入口!
???
我又在dump里选了方法2,再次dump了一遍,运行时说:应用程序初始化失败
郁闷,问题出在哪了呢?用ImpREC修复了一下,双击没反应!!!!???
我查壳,发现又没事阿?
peid如图:
求侠们给个话,来点指导,我知道我菜,但我可以在有资料,有例子的前提下,自己学!!!
下面是加壳软件和加壳后的文件:
深情地求大侠们给点指导!谢谢了!谢谢…… 本帖最后由 realright 于 2010-3-14 10:03 编辑
没人回答,哎,算了,下线了!
自己去研究了!郁闷……
新人成长真困难啊!
其实啥克都可以F7OEP
只是时间长短
或者OEP与你擦身而过
真爱也是这样。
没待眼镜,打字错误 ...
ps520 发表于 2010-3-13 23:02 http://www.52pojie.cn/images/common/back.gif
哇,这么资深的牛人都来回复我,我深感荣幸啊!
谢谢指导,貌似f7吗?单步跟踪?那也可以?
但是要是代码多的话,要到什么时候才可以的,我们菜鸟分析不行,oep很可能擦身就过去了,这成功率会很低的!
其实你的oep是对的。
但是修复的时候弄错了。
按照这个图片修复就好了。我是用lordPe来dump的。
gxwtk 发表于 2010-3-14 00:01 http://www.52pojie.cn/images/common/back.gif
哈哈,真的?真的?原来我的工作是对的啊!好爽!
oep没错!呵呵……我新手,能做到这就很不错了!
哎呀,很可惜啊,图片被字挡住了,最关键的字眼看不到,难道是346?
还有,我刚下的loadpe界面跟你的完全不同啊,没有什么那些类似ImpREC里的显示无效函数什么的!
你用的是什么版本的loadpe,能给个网址或者说的更明确一点吗? 还真是看不懂的啊 其实啥克都可以F7OEP
只是时间长短
或者OEP与你擦身而过
真爱也是这样。
没待眼镜,打字错误请见谅 低手路过,顶上…… 其实你的oep是对的。
但是修复的时候弄错了。
按照这个图片修复就好了。我是用lordPe来dump的。
FSG的IAT需要自己是手工获取下,找下大小范围填写下就可以了. 新手学习中!!! 来顶你一下 fsg真的有点难脱呀,我都脱了好几次了。没结果修复不成
页:
[1]