我给加了FSG 2.0 -> bart/xt壳的木马服务端脱壳。可脱壳后木马不能正常运行,在这里我把我的脱壳过程
记录下来,哪位高手给我指点下我哪个步骤出现了问题。谢谢了!
1。首先检测未脱壳木马mm.exe,一切正常。
2。用PEID检测,FSG 2.0 -> bart/xt壳。
3。打开OD,点选项→调试设置→异常里设置成忽略所有异常,SFX里设置成字节方式跟踪真正入口点。
4。载入加壳木马,等待OD找寻OEP。中途跳出“出现异常,程序不知道如何运行”提示。点确定SHIFT+F9继续。
显示如下:
00403075 /. 55 PUSH EBP ; SFX 代码真正入口点
00403076 |. 8BEC MOV EBP,ESP
00403078 |. 6A FF PUSH -1
0040307A |. 68 A8914000 PUSH mm.004091A8
0040307F |. 68 B8554000 PUSH mm.004055B8 ; SE 处理程序安装
右键点00403075处选取用OD脱壳,复制下OEP(3075)脱壳保存为tuo.exe.缩小OD。
5。打开IMPORTREC汉化版,选择运行程序mm.exe。在OEP里写入3075,按下‘IAT自动搜索’
发现自动搜索出的RVA为0000901C 大小为000000D8这里应该是不正确的。
6。打开未关闭的OD,命令行里输入DD 0040901C回车上找下找发现函数如下:
00408FFC 00000000
00409000 796D18BF ADVAPI32.RegCloseKey
00409004 796D3024 ADVAPI32.RegSetValueExA
00409008 796D24B9 ADVAPI32.RegOpenKeyExA
0040900C 7FFFFFFF
00409010 77F41490 GDI32.GetStockObject
00409014 77F46CE1 GDI32.GetPixel
00409018 7FFFFFFF
0040901C 77E64F27 KERNEL32.CompareStringW
00409020 77E658EC KERNEL32.CompareStringA
00409024 77E688D8 KERNEL32.SetEndOfFile
00409028 77EBEFC4 KERNEL32.LoadLibraryA
0040902C 77E661CD KERNEL32.GetProcAddress
00409030 77E66C82 KERNEL32.GetOEMCP
00409034 77E63EE6 KERNEL32.GetACP
00409038 77E6FAC7 KERNEL32.GetCPInfo
0040903C 77E69BFE KERNEL32.GetStringTypeW
00409040 77E7D7BB KERNEL32.GetStringTypeA
00409044 77E6838C KERNEL32.CreateFileA
00409048 77E68546 KERNEL32.ReadFile
0040904C 77E64403 KERNEL32.FlushFileBuffers
00409050 77F85EE3 ntdll.RtlReAllocateHeap
00409054 77E64DB9 KERNEL32.VirtualAlloc
00409058 77F96C8B ntdll.RtlUnwind
0040905C 77E64E64 KERNEL32.VirtualFree
00409060 77E64EB1 KERNEL32.HeapCreate
00409064 77E64F0C KERNEL32.HeapDestroy
00409068 77E68743 KERNEL32.GetFileType
0040906C 77E6FB09 KERNEL32.GetStdHandle
00409070 77E63ED1 KERNEL32.SetHandleCount
00409074 77E6639D KERNEL32.GetEnvironmentStringsW
00409078 77E76942 KERNEL32.GetEnvironmentStringsA
0040907C 77E66417 KERNEL32.FreeEnvironmentStringsW
00409080 77E6729B KERNEL32.lstrcatA
00409084 77E6A1EC KERNEL32.CreateThread
00409088 77E63A17 KERNEL32.Sleep
0040908C 77E70715 KERNEL32.GetSystemDirectoryA
00409090 77E641D0 KERNEL32.GetModuleFileNameA
00409094 77E78A0E KERNEL32.SetStdHandle
00409098 77E7E6C9 KERNEL32.CopyFileA
0040909C 77E66417 KERNEL32.FreeEnvironmentStringsW
004090A0 77E7AA18 KERNEL32.UnhandledExceptionFilter
004090A4 77E637F3 KERNEL32.WriteFile
004090A8 77E651C4 KERNEL32.LCMapStringW
004090AC 77E7C3CC KERNEL32.LCMapStringA
004090B0 77E64C7E KERNEL32.MultiByteToWideChar
004090B4 77E6542D KERNEL32.WideCharToMultiByte
004090B8 77FCC0EF ntdll.RtlAllocateHeap
004090BC 77E68618 KERNEL32.SetFilePointer
004090C0 77E63AAB KERNEL32.GetCurrentProcess
004090C4 77E620C4 KERNEL32.TerminateProcess
004090C8 77E63D43 KERNEL32.CloseHandle
004090CC 77E7F020 KERNEL32.SetEnvironmentVariableA
004090D0 77E63A9D KERNEL32.GetLastError
004090D4 77FCC644 ntdll.RtlFreeHeap
004090D8 77E6B9C4 KERNEL32.GetTimeZoneInformation
004090DC 77E63F48 KERNEL32.GetSystemTime
004090E0 77E649B6 KERNEL32.GetLocalTime
004090E4 77E63DFC KERNEL32.GetModuleHandleA
004090E8 77E6FBDE KERNEL32.GetStartupInfoA
004090EC 77E6FB03 KERNEL32.GetCommandLineA
004090F0 77E644A7 KERNEL32.GetVersion
004090F4 77E70E7D KERNEL32.ExitProcess
004090F8 7FFFFFFF
004090FC 79027894 SHELL32.ShellExecuteA
00409100 7FFFFFFF
00409104 77DF5F6C USER32.GetMessageA
00409108 77DF3C07 USER32.UpdateWindow
0040910C 77DF6707 USER32.ShowWindow
00409110 77DF8B18 USER32.CreateWindowExA
00409114 77DF156C USER32.TranslateMessage
00409118 77DF5CA5 USER32.LoadCursorA
0040911C 77DF95C1 USER32.LoadIconA
00409120 77DF641A USER32.DefWindowProcA
00409124 77DF41E3 USER32.GetWindowTextA
00409128 77DF3E9F USER32.GetForegroundWindow
0040912C 77E0ADC1 USER32.RegisterClassA
00409130 77DF3CB4 USER32.GetDesktopWindow
00409134 77DF6A8C USER32.ScreenToClient
00409138 77DF3941 USER32.PtInRect
0040913C 77DF6A31 USER32.GetCursorPos
00409140 77DF6791 USER32.MoveWindow
00409144 77E39CF9 USER32.mouse_event
00409148 77DF43E3 USER32.SetForegroundWindow
0040914C 77DF17E9 USER32.SetTimer
00409150 77DF4370 USER32.GetWindowDC
00409154 77DF69E6 USER32.ClientToScreen
00409158 77DF2CA9 USER32.ReleaseDC
0040915C 77DF5FDA USER32.SendMessageA
00409160 77DF17F7 USER32.KillTimer
00409164 77E0B78F USER32.PostQuitMessage
00409168 77DF5F5E USER32.DispatchMessageA
0040916C 7FFFFFFF
00409170 74FB44F0 WS2_32.inet_ntoa
00409174 74FB266D WS2_32.gethostbyname
00409178 74FB308C WS2_32.gethostname
0040917C 74FBD7F5 WS2_32.WSAStartup
00409180 74FBA101 WS2_32.recv
00409184 74FB1BCC WS2_32.send
00409188 74FBDA0D WS2_32.WSACleanup
0040918C 74FB145E WS2_32.closesocket
00409190 74FBC1B9 WS2_32.connect
00409194 74FB316B WS2_32.inet_addr
00409198 74FB353D WS2_32.socket
0040919C 74FB1512 WS2_32.ntohs
004091A0 FFFFFFFF
这样就确定RVA为00409000 大小为004091A0-00409000=1A4 在IREC里输入,点获取输入信息。
找到的函数信息: FTunk 00009000 NbFUNC:68(十进制:104)有效:NO
按IREC的“显示无效”键
看到是rva:0000900C ptr:7FFFFFFF
rva:00009018 ptr:7FFFFFFF
rva:000090F8 ptr:7FFFFFFF
rva:00009100 ptr:7FFFFFFF
rva:0000916c ptr:7FFFFFFF这5个空白处无效。右键选取剪切指针。显示6组函数显示有效:YES
抓取修复文件,保存为tuo-.exe.
7。双击TUO-.exe 。系统提示产生了错误,会被WINDOWS关闭。您需要重新启动程序。
用OD载入,F9运行。
到77F8EE0F C2 0800 RETN 8系统提示“产生错误,会被关闭,需要重新启动程序”
我想问的问题是:1、我的过程以及找寻RVA和大小有无出错?
2、如果无错,请问出现为什么按照这样的步骤不能成功脱壳
3、接下来我该怎么办?
另:(FSG2.0壳加在记事本上以及另一个软件上,我用这样的步骤脱壳成功)
感谢bestchao的热心帮助,但在QQ上实在太难碰面了,呵呵到现在还没发给你
http://j.thec.cn/tiema91/123/mm.rar 这是我上传到我空间的木马生成器
这木马生成器加的壳也是FSG2.0,但我能成功脱掉的。
我这里发的求助贴是关于用这木马生成器生成出来的木马服务端的脱壳。
请有能力者下载去自己配置木马生成器生成出木马,进行脱壳调试。
本菜不胜感激。
[课程]Android-CTF解题方法汇总!