好友
阅读权限30
听众
最后登录1970-1-1
|
自问脱壳实在菜.今天碰到[MoleBox V2.X -> MoleStudio.com] 在网上找了大把资料才终于搞定,现在来做下笔记..方便以后用到…
OD载入,忽略所有异常.入口代码如下
0057BBD3 > E8 00000000 CALL FEI.0057BBD8 //是一个进Call,F7跟进.
0057BBD8 60 PUSHAD //此时ESP亮起,那就ESP吧
0057BBD9 E8 4F000000 CALL FEI.0057BC2D
0057BBDE CA 3990 RETF 9039
0057BBE1 D2D4 RCL AH,CL
0057BBE3 81F8 19F592D7 CMP EAX,D792F519
0057BBE9 0D C1805FA8 OR EAX,A85F80C1
0057BBEE 90 NOP
F9运行后断在
0057B7B1 58 POP EAX
0057B7B2 58 POP EAX
0057B7B3 FFD0 CALL EAX //其实这里跟进就是OEP了
0057B7B5 E8 05CB0000 CALL FEI.005882BF
0057B7BA CC INT3
0057B7BB CC INT3
0057B7BC CC INT3
好了来到OEP.
004EDAAC 55 PUSH EBP //OEP
004EDAAD 8BEC MOV EBP,ESP
004EDAAF 83C4 F0 ADD ESP,-10
004EDAB2 53 PUSH EBX
004EDAB3 B8 48C74E00 MOV EAX,FEI.004EC748
004EDAB8 E8 6792F1FF CALL FEI.00406D24
直接LordPE脱之,然后用ImportREC填上OEP自动搜索找到指针获取了下成功获取到了,可是好多无效呀..用ImportREC修复后还省3个错误的.于是重载OD在第一处错误的地方下硬件写入断点.F9几次后发现数据窗口出现了解密的IAT但是就这里是错误的.
004F9F7C 7C802530 kernel32.WaitForSingleObject
004F9F80 7C80BA71 kernel32.VirtualQuery
004F9F84 7C809B84 kernel32.VirtualFree
004F9F88 7C809AF1 kernel32.VirtualAlloc
004F9F8C 0058975E FEI.0058975E //下断处
004F9F90 000FB922
004F9F94 000FB936
004F9F98 000FB94E
想想处理加密的关键应该就在上面点吧..然后在上面点下了断去跟,断下后经过N次F9之后发现之前会跳的je不跳了.同时IAT就出错,猜想可能是Magic Jump于是改成了在此处下断重载运行改成Jmp,之后删除断点冲向OEP.(OEP之前ESP下过断还没删现在派上用场了.)
00583556 8B0D D4405900 MOV ECX,DWORD PTR DS:[5940D4]
0058355C E8 13650000 CALL FEI.00589A74
00583561 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
00583564 837D F8 00 CMP DWORD PTR SS:[EBP-8],0
00583568 74 45 JE SHORT FEI.005835AF //Magic Jump
0058356A 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
0058356D 52 PUSH EDX
0058356E 6A 04 PUSH 4
00583570 6A 04 PUSH 4
00583572 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00583575 50 PUSH EAX
00583576 FF15 ACF75800 CALL DWORD PTR DS:[58F7AC] //VirtualProtect
0058357C 85C0 TEST EAX,EAX
0058357E 75 0A JNZ SHORT FEI.0058358A
继续ImportREC修复与天上OEP地址自动获取IAT发现全部有效高兴啊.抓去修复试运行哦耶.成功了…
学习就要摸索.. 感谢百度.^o^ |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|