首页
社区
课程
招聘
[原创]ExeGuarder V1.80主程序脱壳+注册
发表于: 2005-12-8 01:45 6287

[原创]ExeGuarder V1.80主程序脱壳+注册

2005-12-8 01:45
6287
目标程序:ExeGuarder v1.80
用    途:为PE程序加口令保护壳
下载链接:http://www.qwerks.com/download/8606/ExeguarderSetup.exe
工    具:FlyOD v1.10、ImporReconstructor v1.6F、PEiD v0.93、C32Asm v0.1114

    该程序主程序为"ExeGuarder.exe",经PEiD侦查为"ASPack 2.001 -> Alexey Solodovnikov"加壳,但找不到OEP。在这里,加什么壳不是很主要,重要的是找到一种可操作性比较强的对付无Anti壳的思路和方法。好了,闲话少说,让我们开始正题。还是老套路,一切从寻找OEP开始。

一、寻找OEP

    用OD载入程序,同时按下"Alt-m"键,查看内存布局,我们看到,401000-4DF000 为.text段,Ok,程序解码时,必然会向这个区段写入代码,我们就在那里等着好了,关闭内存映射窗口,在代码窗口内同时按下"Ctrl-g",在弹出的窗口中输入我们要去的地方:4DE000,在代码窗口内4DE000这行指令上设内存访问断点,然后运行,程序停在如下地址:

005A02C2    F3:A5           rep movs dword ptr es:[edi],dword ptr ds:[esi]   <--- 程序停在这里
005A02C4    8BC8            mov ecx,eax                                      <--- 在这里设断点

    如果在005A02C2处直接按F8键,程序将会失控,所以,把光标移到下一条指令上,按下F2键设断点,然后按F9运行,程序如我们所愿停在了新设的断点处,由此按F8键逐条指令向下跟踪,这里需要掌握一个原则,凡是碰到往回的跳转一律在下一条指令上设断点,然后按F9键,保持程序一直在向前推进,我们这样跟踪下去,很快就来到这里:

005A04DD    8B85 4E2A4400   mov eax,dword ptr ss:[ebp+442A4E]
005A04E3    50              push eax
005A04E4    0385 E0374400   add eax,dword ptr ss:[ebp+4437E0]
005A04EA    59              pop ecx
005A04EB    0BC9            or ecx,ecx
005A04ED    8985 7B2E4400   mov dword ptr ss:[ebp+442E7B],eax
005A04F3    61              popad                                 <--- 熟悉吧?
005A04F4    75 08           jnz short ExeGuard.005A04FE
005A04F6    B8 01000000     mov eax,1
005A04FB    C2 0C00         retn 0C
005A04FE    68 64154000     push ExeGuard.00401564                <--- 传说中的"光明之巅"
005A0503    C3              retn

    没错,程序首次跳向程序的.text区段,必然就是我们想知道的OEP了。好了,老规矩,让程序停在OEP处,并记住它的位置:"00401564",然后用OllyDump插件,"脱壳在当前调试的进程"将程序Dump出来,姑且起名为"dumped.exe"待用。

二、重建输入表

    抑制不住激动的心情,启动ImportRec.exe,在进程列表中找到处于运行态的"ExeGuarder.exe",在OEP栏内填入我们找到OEP的RVA值"00001564"(00001564=00401564-00400000),用鼠标依次点击"IAT AutoSearch"和"Get Imports"按钮,我们看到,找到了Kernel32.dll中的一些函数,并且全部有效,于是,按下"Fix Dump"按钮,要修正的文件就选刚才用OllyDump存下的"Dumped.exe"。于是,生成一个名为"Dumped_.exe"的新文件,这就应该是经过输入表重构的执行程序了。我们让这个程序执行,看到什么了,系统报错,哎呀,打击真不小!通过将Dumped_.exe与原程序跟踪对比发现,原来问题出在输入表重构不完全。好吧,让我们从OEP处开始单步跟踪原程序"ExeGuarder.exe"。

00401564   /EB 10           jmp short ExeGuard.00401576  〈--- OEP
00401566   |66:623A         bound di,dword ptr ds:[edx]
00401569   |43              inc ebx
0040156A   |2B2B            sub ebp,dword ptr ds:[ebx]
0040156C   |48              dec eax
0040156D   |4F              dec edi
0040156E   |4F              dec edi
0040156F   |4B              dec ebx
00401570   |90              nop
00401571  -|E9 98F04D00     jmp 008E060E
00401576   \A1 8BF04D00     mov eax,dword ptr ds:[4DF08B]
0040157B    C1E0 02         shl eax,2
0040157E    A3 8FF04D00     mov dword ptr ds:[4DF08F],eax
00401583    52              push edx
00401584    6A 00           push 0
00401586    E8 BDC60D00     call ExeGuard.004DDC48                                 ; jmp to kernel32.GetModuleHandleA

    我们很快来到程序的第一个系统函数调用处-00401586,在代码窗口内,同时按下"Ctrl-g",输入我们想去的地址:004DDC48,看看代码:

004DDC42  - FF25 74134F00   jmp dword ptr ds:[4F1374]                              ; kernel32.GetModuleFileNameA
004DDC48  - FF25 78134F00   jmp dword ptr ds:[4F1378]                              ; kernel32.GetModuleHandleA
004DDC4E  - FF25 7C134F00   jmp dword ptr ds:[4F137C]                              ; kernel32.GetOEMCP

    这就是程序的系统函数调用接口,让我们找到它的头和尾:

004DDB30    C3              retn
004DDB31    90              nop
004DDB32    90              nop
004DDB33    90              nop
004DDB34  - FF25 F8104F00   jmp dword ptr ds:[4F10F8]                              ; advapi32.RegCloseKey       <--- 第一项的地址是004F10F8
004DDB3A  - FF25 FC104F00   jmp dword ptr ds:[4F10FC]                              ; advapi32.RegCreateKeyExA
004DDB40  - FF25 00114F00   jmp dword ptr ds:[4F1100]                              ; advapi32.RegFlushKey
004DDB46  - FF25 04114F00   jmp dword ptr ds:[4F1104]                              ; advapi32.RegOpenKeyExA
004DDB4C  - FF25 08114F00   jmp dword ptr ds:[4F1108]                              ; advapi32.RegQueryValueExA
004DDB52  - FF25 0C114F00   jmp dword ptr ds:[4F110C]                              ; advapi32.RegSetValueExA
004DDB58  - FF25 D8124F00   jmp dword ptr ds:[4F12D8]                              ; kernel32.CloseHandle
004DDB5E  - FF25 DC124F00   jmp dword ptr ds:[4F12DC]                              ; kernel32.CompareStringA
004DDB64  - FF25 E0124F00   jmp dword ptr ds:[4F12E0]                              ; kernel32.CopyFileA
004DDB6A  - FF25 E4124F00   jmp dword ptr ds:[4F12E4]                              ; kernel32.CreateEventA
004DDB70  - FF25 E8124F00   jmp dword ptr ds:[4F12E8]                              ; kernel32.CreateFileA
004DDB76  - FF25 EC124F00   jmp dword ptr ds:[4F12EC]                              ; kernel32.CreateThread
004DDB7C  - FF25 F0124F00   jmp dword ptr ds:[4F12F0]                              ; ntdll.RtlDeleteCriticalSection
004DDB82  - FF25 F4124F00   jmp dword ptr ds:[4F12F4]                              ; kernel32.DeleteFileA
004DDB88  - FF25 F8124F00   jmp dword ptr ds:[4F12F8]                              ; ntdll.RtlEnterCriticalSection
004DDB8E  - FF25 FC124F00   jmp dword ptr ds:[4F12FC]                              ; kernel32.EnumCalendarInfoA
004DDB94  - FF25 00134F00   jmp dword ptr ds:[4F1300]                              ; kernel32.EnumResourceNamesA
004DDB9A  - FF25 04134F00   jmp dword ptr ds:[4F1304]                              ; kernel32.ExitProcess
004DDBA0  - FF25 08134F00   jmp dword ptr ds:[4F1308]                              ; kernel32.FileTimeToDosDateTime
004DDBA6  - FF25 0C134F00   jmp dword ptr ds:[4F130C]                              ; kernel32.FileTimeToLocalFileTime
004DDBAC  - FF25 10134F00   jmp dword ptr ds:[4F1310]                              ; kernel32.FindClose
004DDBB2  - FF25 14134F00   jmp dword ptr ds:[4F1314]                              ; kernel32.FindFirstFileA
004DDBB8  - FF25 18134F00   jmp dword ptr ds:[4F1318]                              ; kernel32.FindNextFileA
004DDBBE  - FF25 1C134F00   jmp dword ptr ds:[4F131C]                              ; kernel32.FindResourceA
004DDBC4  - FF25 20134F00   jmp dword ptr ds:[4F1320]                              ; kernel32.FormatMessageA
004DDBCA  - FF25 24134F00   jmp dword ptr ds:[4F1324]                              ; kernel32.FreeLibrary
004DDBD0  - FF25 28134F00   jmp dword ptr ds:[4F1328]                              ; kernel32.FreeResource
004DDBD6  - FF25 2C134F00   jmp dword ptr ds:[4F132C]                              ; kernel32.GetACP
004DDBDC  - FF25 30134F00   jmp dword ptr ds:[4F1330]                              ; kernel32.GetCPInfo
004DDBE2  - FF25 34134F00   jmp dword ptr ds:[4F1334]                              ; kernel32.GetCommandLineA
004DDBE8  - FF25 38134F00   jmp dword ptr ds:[4F1338]                              ; kernel32.GetCurrentDirectoryA
004DDBEE  - FF25 3C134F00   jmp dword ptr ds:[4F133C]                              ; kernel32.GetCurrentProcessId
004DDBF4  - FF25 40134F00   jmp dword ptr ds:[4F1340]                              ; kernel32.GetCurrentThreadId
004DDBFA  - FF25 44134F00   jmp dword ptr ds:[4F1344]                              ; kernel32.GetDateFormatA
004DDC00  - FF25 48134F00   jmp dword ptr ds:[4F1348]                              ; kernel32.GetDiskFreeSpaceA
004DDC06  - FF25 4C134F00   jmp dword ptr ds:[4F134C]                              ; kernel32.GetDriveTypeA
004DDC0C  - FF25 50134F00   jmp dword ptr ds:[4F1350]                              ; kernel32.GetEnvironmentStringsA
004DDC12  - FF25 54134F00   jmp dword ptr ds:[4F1354]                              ; kernel32.GetEnvironmentVariableA
004DDC18  - FF25 58134F00   jmp dword ptr ds:[4F1358]                              ; kernel32.GetFileAttributesA
004DDC1E  - FF25 5C134F00   jmp dword ptr ds:[4F135C]                              ; kernel32.GetFileSize
004DDC24  - FF25 60134F00   jmp dword ptr ds:[4F1360]                              ; kernel32.GetFileType
004DDC2A  - FF25 64134F00   jmp dword ptr ds:[4F1364]                              ; kernel32.GetFullPathNameA
004DDC30  - FF25 68134F00   jmp dword ptr ds:[4F1368]                              ; ntdll.RtlGetLastWin32Error
004DDC36  - FF25 6C134F00   jmp dword ptr ds:[4F136C]                              ; kernel32.GetLocalTime
004DDC3C  - FF25 70134F00   jmp dword ptr ds:[4F1370]                              ; kernel32.GetLocaleInfoA
004DDC42  - FF25 74134F00   jmp dword ptr ds:[4F1374]                              ; kernel32.GetModuleFileNameA
004DDC48  - FF25 78134F00   jmp dword ptr ds:[4F1378]                              ; kernel32.GetModuleHandleA
004DDC4E  - FF25 7C134F00   jmp dword ptr ds:[4F137C]                              ; kernel32.GetOEMCP
004DDC54  - FF25 80134F00   jmp dword ptr ds:[4F1380]                              ; kernel32.GetProcAddress
004DDC5A  - FF25 84134F00   jmp dword ptr ds:[4F1384]                              ; kernel32.GetProcessHeap
004DDC60  - FF25 88134F00   jmp dword ptr ds:[4F1388]                              ; kernel32.GetProfileStringA
004DDC66  - FF25 8C134F00   jmp dword ptr ds:[4F138C]                              ; kernel32.GetStartupInfoA
004DDC6C  - FF25 90134F00   jmp dword ptr ds:[4F1390]                              ; kernel32.GetStdHandle
004DDC72  - FF25 94134F00   jmp dword ptr ds:[4F1394]                              ; kernel32.GetStringTypeExA
004DDC78  - FF25 98134F00   jmp dword ptr ds:[4F1398]                              ; kernel32.GetStringTypeW
004DDC7E  - FF25 9C134F00   jmp dword ptr ds:[4F139C]                              ; kernel32.GetSystemInfo
004DDC84  - FF25 A0134F00   jmp dword ptr ds:[4F13A0]                              ; kernel32.GetThreadLocale
004DDC8A  - FF25 A4134F00   jmp dword ptr ds:[4F13A4]                              ; kernel32.GetTickCount
004DDC90  - FF25 A8134F00   jmp dword ptr ds:[4F13A8]                              ; kernel32.GetVersion
004DDC96  - FF25 AC134F00   jmp dword ptr ds:[4F13AC]                              ; kernel32.GetVersionExA
004DDC9C  - FF25 B0134F00   jmp dword ptr ds:[4F13B0]                              ; kernel32.GetWindowsDirectoryA
004DDCA2  - FF25 B4134F00   jmp dword ptr ds:[4F13B4]                              ; kernel32.GlobalAddAtomA
004DDCA8  - FF25 B8134F00   jmp dword ptr ds:[4F13B8]                              ; kernel32.GlobalAlloc
004DDCAE  - FF25 BC134F00   jmp dword ptr ds:[4F13BC]                              ; kernel32.GlobalDeleteAtom
004DDCB4  - FF25 C0134F00   jmp dword ptr ds:[4F13C0]                              ; kernel32.GlobalFindAtomA
004DDCBA  - FF25 C4134F00   jmp dword ptr ds:[4F13C4]                              ; kernel32.GlobalFree
004DDCC0  - FF25 C8134F00   jmp dword ptr ds:[4F13C8]                              ; kernel32.GlobalHandle
004DDCC6  - FF25 CC134F00   jmp dword ptr ds:[4F13CC]                              ; kernel32.GlobalLock
004DDCCC  - FF25 D0134F00   jmp dword ptr ds:[4F13D0]                              ; kernel32.GlobalReAlloc
004DDCD2  - FF25 D4134F00   jmp dword ptr ds:[4F13D4]                              ; kernel32.GlobalUnlock
004DDCD8  - FF25 D8134F00   jmp dword ptr ds:[4F13D8]                              ; ntdll.RtlAllocateHeap
004DDCDE  - FF25 DC134F00   jmp dword ptr ds:[4F13DC]                              ; ntdll.RtlFreeHeap
004DDCE4  - FF25 E0134F00   jmp dword ptr ds:[4F13E0]                              ; kernel32.InitializeCriticalSection
004DDCEA  - FF25 E4134F00   jmp dword ptr ds:[4F13E4]                              ; kernel32.InterlockedDecrement
004DDCF0  - FF25 E8134F00   jmp dword ptr ds:[4F13E8]                              ; kernel32.InterlockedIncrement
004DDCF6  - FF25 EC134F00   jmp dword ptr ds:[4F13EC]                              ; kernel32.LCMapStringA
004DDCFC  - FF25 F0134F00   jmp dword ptr ds:[4F13F0]                              ; ntdll.RtlLeaveCriticalSection
004DDD02  - FF25 F4134F00   jmp dword ptr ds:[4F13F4]                              ; kernel32.LoadLibraryA
004DDD08  - FF25 F8134F00   jmp dword ptr ds:[4F13F8]                              ; kernel32.LoadLibraryExA
004DDD0E  - FF25 FC134F00   jmp dword ptr ds:[4F13FC]                              ; kernel32.LoadResource
004DDD14  - FF25 00144F00   jmp dword ptr ds:[4F1400]                              ; kernel32.LocalAlloc
004DDD1A  - FF25 04144F00   jmp dword ptr ds:[4F1404]                              ; kernel32.LocalFree
004DDD20  - FF25 08144F00   jmp dword ptr ds:[4F1408]                              ; kernel32.SetHandleCount
004DDD26  - FF25 0C144F00   jmp dword ptr ds:[4F140C]                              ; kernel32.MoveFileA
004DDD2C  - FF25 10144F00   jmp dword ptr ds:[4F1410]                              ; kernel32.MulDiv
004DDD32  - FF25 14144F00   jmp dword ptr ds:[4F1414]                              ; kernel32.MultiByteToWideChar
004DDD38  - FF25 18144F00   jmp dword ptr ds:[4F1418]                              ; kernel32.RaiseException
004DDD3E  - FF25 1C144F00   jmp dword ptr ds:[4F141C]                              ; kernel32.ReadFile
004DDD44  - FF25 20144F00   jmp dword ptr ds:[4F1420]                              ; kernel32.ResetEvent
004DDD4A  - FF25 24144F00   jmp dword ptr ds:[4F1424]                              ; ntdll.RtlUnwind
004DDD50  - FF25 28144F00   jmp dword ptr ds:[4F1428]                              ; kernel32.SetConsoleCtrlHandler
004DDD56  - FF25 2C144F00   jmp dword ptr ds:[4F142C]                              ; kernel32.SetCurrentDirectoryA
004DDD5C  - FF25 30144F00   jmp dword ptr ds:[4F1430]                              ; kernel32.SetEndOfFile
004DDD62  - FF25 34144F00   jmp dword ptr ds:[4F1434]                              ; kernel32.SetEnvironmentVariableA
004DDD68  - FF25 38144F00   jmp dword ptr ds:[4F1438]                              ; kernel32.SetErrorMode
004DDD6E  - FF25 3C144F00   jmp dword ptr ds:[4F143C]                              ; kernel32.SetEvent
004DDD74  - FF25 40144F00   jmp dword ptr ds:[4F1440]                              ; kernel32.SetFilePointer
004DDD7A  - FF25 44144F00   jmp dword ptr ds:[4F1444]                              ; kernel32.SetHandleCount
004DDD80  - FF25 48144F00   jmp dword ptr ds:[4F1448]                              ; ntdll.RtlSetLastWin32Error
004DDD86  - FF25 4C144F00   jmp dword ptr ds:[4F144C]                              ; kernel32.SetThreadLocale
004DDD8C  - FF25 50144F00   jmp dword ptr ds:[4F1450]                              ; kernel32.SizeofResource
004DDD92  - FF25 54144F00   jmp dword ptr ds:[4F1454]                              ; kernel32.Sleep
004DDD98  - FF25 58144F00   jmp dword ptr ds:[4F1458]                              ; kernel32.TlsAlloc
004DDD9E  - FF25 5C144F00   jmp dword ptr ds:[4F145C]                              ; kernel32.TlsFree
004DDDA4  - FF25 60144F00   jmp dword ptr ds:[4F1460]                              ; kernel32.TlsGetValue
004DDDAA  - FF25 64144F00   jmp dword ptr ds:[4F1464]                              ; kernel32.TlsSetValue
004DDDB0  - FF25 68144F00   jmp dword ptr ds:[4F1468]                              ; kernel32.UnhandledExceptionFilter
004DDDB6  - FF25 6C144F00   jmp dword ptr ds:[4F146C]                              ; kernel32.VirtualAlloc
004DDDBC  - FF25 70144F00   jmp dword ptr ds:[4F1470]                              ; kernel32.VirtualFree
004DDDC2  - FF25 74144F00   jmp dword ptr ds:[4F1474]                              ; kernel32.VirtualQuery
004DDDC8  - FF25 78144F00   jmp dword ptr ds:[4F1478]                              ; kernel32.WaitForSingleObject
004DDDCE  - FF25 7C144F00   jmp dword ptr ds:[4F147C]                              ; kernel32.WideCharToMultiByte
004DDDD4  - FF25 80144F00   jmp dword ptr ds:[4F1480]                              ; kernel32.WriteFile
004DDDDA  - FF25 84144F00   jmp dword ptr ds:[4F1484]                              ; kernel32.lstrcmpA
004DDDE0  - FF25 88144F00   jmp dword ptr ds:[4F1488]                              ; kernel32.lstrcpyA
004DDDE6  - FF25 8C144F00   jmp dword ptr ds:[4F148C]                              ; kernel32.lstrcpynA
004DDDEC  - FF25 90144F00   jmp dword ptr ds:[4F1490]                              ; kernel32.lstrlenA
004DDDF2  - FF25 94144F00   jmp dword ptr ds:[4F1494]                              ; kernel32.GetVolumeInformationA
004DDDF8  - FF25 AC144F00   jmp dword ptr ds:[4F14AC]                              ; version.GetFileVersionInfoA
004DDDFE  - FF25 B0144F00   jmp dword ptr ds:[4F14B0]                              ; version.GetFileVersionInfoSizeA
004DDE04  - FF25 B4144F00   jmp dword ptr ds:[4F14B4]                              ; version.VerQueryValueA
004DDE0A    CC              int3
004DDE0B    CC              int3
004DDE0C  - FF25 D0144F00   jmp dword ptr ds:[4F14D0]                              ; winspool.ClosePrinter
004DDE12  - FF25 D4144F00   jmp dword ptr ds:[4F14D4]                              ; winspool.DocumentPropertiesA
004DDE18  - FF25 D8144F00   jmp dword ptr ds:[4F14D8]                              ; winspool.EnumPrintersA
004DDE1E  - FF25 DC144F00   jmp dword ptr ds:[4F14DC]                              ; winspool.OpenPrinterA
004DDE24  - FF25 48154F00   jmp dword ptr ds:[4F1548]                              ; comctl32.ImageList_Add
004DDE2A  - FF25 4C154F00   jmp dword ptr ds:[4F154C]                              ; comctl32.ImageList_BeginDrag
004DDE30  - FF25 50154F00   jmp dword ptr ds:[4F1550]                              ; comctl32.ImageList_Create
004DDE36  - FF25 54154F00   jmp dword ptr ds:[4F1554]                              ; comctl32.ImageList_Destroy
004DDE3C  - FF25 58154F00   jmp dword ptr ds:[4F1558]                              ; comctl32.ImageList_DragEnter
004DDE42  - FF25 5C154F00   jmp dword ptr ds:[4F155C]                              ; comctl32.ImageList_DragLeave
004DDE48  - FF25 60154F00   jmp dword ptr ds:[4F1560]                              ; comctl32.ImageList_DragMove
004DDE4E  - FF25 64154F00   jmp dword ptr ds:[4F1564]                              ; comctl32.ImageList_DragShowNolock
004DDE54  - FF25 68154F00   jmp dword ptr ds:[4F1568]                              ; comctl32.ImageList_Draw
004DDE5A  - FF25 6C154F00   jmp dword ptr ds:[4F156C]                              ; comctl32.ImageList_DrawEx
004DDE60  - FF25 70154F00   jmp dword ptr ds:[4F1570]                              ; comctl32.ImageList_EndDrag
004DDE66  - FF25 74154F00   jmp dword ptr ds:[4F1574]                              ; comctl32.ImageList_GetBkColor
004DDE6C  - FF25 78154F00   jmp dword ptr ds:[4F1578]                              ; comctl32.ImageList_GetDragImage
004DDE72  - FF25 7C154F00   jmp dword ptr ds:[4F157C]                              ; comctl32.ImageList_GetIconSize
004DDE78  - FF25 80154F00   jmp dword ptr ds:[4F1580]                              ; comctl32.ImageList_GetImageCount
004DDE7E  - FF25 84154F00   jmp dword ptr ds:[4F1584]                              ; comctl32.ImageList_Read
004DDE84  - FF25 88154F00   jmp dword ptr ds:[4F1588]                              ; comctl32.ImageList_Remove
004DDE8A  - FF25 8C154F00   jmp dword ptr ds:[4F158C]                              ; comctl32.ImageList_Replace
004DDE90  - FF25 90154F00   jmp dword ptr ds:[4F1590]                              ; comctl32.ImageList_ReplaceIcon
004DDE96  - FF25 94154F00   jmp dword ptr ds:[4F1594]                              ; comctl32.ImageList_SetBkColor
004DDE9C  - FF25 98154F00   jmp dword ptr ds:[4F1598]                              ; comctl32.ImageList_SetDragCursorImage
004DDEA2  - FF25 9C154F00   jmp dword ptr ds:[4F159C]                              ; comctl32.ImageList_SetIconSize
004DDEA8  - FF25 A0154F00   jmp dword ptr ds:[4F15A0]                              ; comctl32.ImageList_Write
004DDEAE  - FF25 A4154F00   jmp dword ptr ds:[4F15A4]                              ; comctl32.InitCommonControls
004DDEB4  - FF25 B8154F00   jmp dword ptr ds:[4F15B8]                              ; comdlg32.ChooseColorA
004DDEBA  - FF25 BC154F00   jmp dword ptr ds:[4F15BC]                              ; comdlg32.GetOpenFileNameA
004DDEC0  - FF25 24174F00   jmp dword ptr ds:[4F1724]                              ; GDI32.BitBlt
004DDEC6  - FF25 28174F00   jmp dword ptr ds:[4F1728]                              ; GDI32.CombineRgn
004DDECC  - FF25 2C174F00   jmp dword ptr ds:[4F172C]                              ; GDI32.CopyEnhMetaFileA
004DDED2  - FF25 30174F00   jmp dword ptr ds:[4F1730]                              ; GDI32.CreateBitmap
004DDED8  - FF25 34174F00   jmp dword ptr ds:[4F1734]                              ; GDI32.CreateBrushIndirect
004DDEDE  - FF25 38174F00   jmp dword ptr ds:[4F1738]                              ; GDI32.CreateCompatibleBitmap
004DDEE4  - FF25 3C174F00   jmp dword ptr ds:[4F173C]                              ; GDI32.CreateCompatibleDC
004DDEEA  - FF25 40174F00   jmp dword ptr ds:[4F1740]                              ; GDI32.CreateDCA
004DDEF0  - FF25 44174F00   jmp dword ptr ds:[4F1744]                              ; GDI32.CreateDIBSection
004DDEF6  - FF25 48174F00   jmp dword ptr ds:[4F1748]                              ; GDI32.CreateDIBitmap
004DDEFC  - FF25 4C174F00   jmp dword ptr ds:[4F174C]                              ; GDI32.CreateFontIndirectA
004DDF02  - FF25 50174F00   jmp dword ptr ds:[4F1750]                              ; GDI32.CreateHalftonePalette
004DDF08  - FF25 54174F00   jmp dword ptr ds:[4F1754]                              ; GDI32.CreateICA
004DDF0E  - FF25 58174F00   jmp dword ptr ds:[4F1758]                              ; GDI32.CreatePalette
004DDF14  - FF25 5C174F00   jmp dword ptr ds:[4F175C]                              ; GDI32.CreatePenIndirect
004DDF1A  - FF25 60174F00   jmp dword ptr ds:[4F1760]                              ; GDI32.CreateRectRgn
004DDF20  - FF25 64174F00   jmp dword ptr ds:[4F1764]                              ; GDI32.CreateRoundRectRgn
004DDF26  - FF25 68174F00   jmp dword ptr ds:[4F1768]                              ; GDI32.CreateSolidBrush
004DDF2C  - FF25 6C174F00   jmp dword ptr ds:[4F176C]                              ; GDI32.DeleteDC
004DDF32  - FF25 70174F00   jmp dword ptr ds:[4F1770]                              ; GDI32.DeleteEnhMetaFile
004DDF38  - FF25 74174F00   jmp dword ptr ds:[4F1774]                              ; GDI32.DeleteObject
004DDF3E  - FF25 78174F00   jmp dword ptr ds:[4F1778]                              ; GDI32.Ellipse
004DDF44  - FF25 7C174F00   jmp dword ptr ds:[4F177C]                              ; GDI32.EndDoc
004DDF4A  - FF25 80174F00   jmp dword ptr ds:[4F1780]                              ; GDI32.EndPage
004DDF50  - FF25 84174F00   jmp dword ptr ds:[4F1784]                              ; GDI32.EnumFontFamiliesA
004DDF56  - FF25 88174F00   jmp dword ptr ds:[4F1788]                              ; GDI32.ExcludeClipRect
004DDF5C  - FF25 8C174F00   jmp dword ptr ds:[4F178C]                              ; GDI32.ExtCreatePen
004DDF62  - FF25 90174F00   jmp dword ptr ds:[4F1790]                              ; GDI32.ExtTextOutA
004DDF68  - FF25 94174F00   jmp dword ptr ds:[4F1794]                              ; GDI32.GetBitmapBits
004DDF6E  - FF25 98174F00   jmp dword ptr ds:[4F1798]                              ; GDI32.GetBrushOrgEx
004DDF74  - FF25 9C174F00   jmp dword ptr ds:[4F179C]                              ; GDI32.GetClipBox
004DDF7A  - FF25 A0174F00   jmp dword ptr ds:[4F17A0]                              ; GDI32.GetClipRgn
004DDF80  - FF25 A4174F00   jmp dword ptr ds:[4F17A4]                              ; GDI32.GetCurrentPositionEx
004DDF86  - FF25 A8174F00   jmp dword ptr ds:[4F17A8]                              ; GDI32.GetDCOrgEx
004DDF8C  - FF25 AC174F00   jmp dword ptr ds:[4F17AC]                              ; GDI32.GetDIBColorTable
004DDF92  - FF25 B0174F00   jmp dword ptr ds:[4F17B0]                              ; GDI32.GetDIBits
004DDF98  - FF25 B4174F00   jmp dword ptr ds:[4F17B4]                              ; GDI32.GetDeviceCaps
004DDF9E  - FF25 B8174F00   jmp dword ptr ds:[4F17B8]                              ; GDI32.GetEnhMetaFileBits
004DDFA4  - FF25 BC174F00   jmp dword ptr ds:[4F17BC]                              ; GDI32.GetEnhMetaFileHeader
004DDFAA  - FF25 C0174F00   jmp dword ptr ds:[4F17C0]                              ; GDI32.GetEnhMetaFilePaletteEntries
004DDFB0  - FF25 C4174F00   jmp dword ptr ds:[4F17C4]                              ; GDI32.GetObjectA
004DDFB6  - FF25 C8174F00   jmp dword ptr ds:[4F17C8]                              ; GDI32.GetPaletteEntries
004DDFBC  - FF25 CC174F00   jmp dword ptr ds:[4F17CC]                              ; GDI32.GetPixel
004DDFC2  - FF25 D0174F00   jmp dword ptr ds:[4F17D0]                              ; GDI32.GetRgnBox
004DDFC8  - FF25 D4174F00   jmp dword ptr ds:[4F17D4]                              ; GDI32.GetStockObject
004DDFCE  - FF25 D8174F00   jmp dword ptr ds:[4F17D8]                              ; GDI32.GetSystemPaletteEntries
004DDFD4  - FF25 DC174F00   jmp dword ptr ds:[4F17DC]                              ; GDI32.GetTextExtentPoint32A
004DDFDA  - FF25 E0174F00   jmp dword ptr ds:[4F17E0]                              ; GDI32.GetTextExtentPointA
004DDFE0  - FF25 E4174F00   jmp dword ptr ds:[4F17E4]                              ; GDI32.GetTextMetricsA
004DDFE6  - FF25 E8174F00   jmp dword ptr ds:[4F17E8]                              ; GDI32.GetViewportOrgEx
004DDFEC  - FF25 EC174F00   jmp dword ptr ds:[4F17EC]                              ; GDI32.GetWinMetaFileBits
004DDFF2  - FF25 F0174F00   jmp dword ptr ds:[4F17F0]                              ; GDI32.GetWindowOrgEx
004DDFF8  - FF25 F4174F00   jmp dword ptr ds:[4F17F4]                              ; GDI32.IntersectClipRect
004DDFFE  - FF25 F8174F00   jmp dword ptr ds:[4F17F8]                              ; GDI32.LineTo
004DE004  - FF25 FC174F00   jmp dword ptr ds:[4F17FC]                              ; GDI32.MaskBlt
004DE00A  - FF25 00184F00   jmp dword ptr ds:[4F1800]                              ; GDI32.MoveToEx
004DE010  - FF25 04184F00   jmp dword ptr ds:[4F1804]                              ; GDI32.PatBlt
004DE016  - FF25 08184F00   jmp dword ptr ds:[4F1808]                              ; GDI32.Pie
004DE01C  - FF25 0C184F00   jmp dword ptr ds:[4F180C]                              ; GDI32.PlayEnhMetaFile
004DE022  - FF25 10184F00   jmp dword ptr ds:[4F1810]                              ; GDI32.PolyPolyline
004DE028  - FF25 14184F00   jmp dword ptr ds:[4F1814]                              ; GDI32.Polygon
004DE02E  - FF25 18184F00   jmp dword ptr ds:[4F1818]                              ; GDI32.Polyline
004DE034  - FF25 1C184F00   jmp dword ptr ds:[4F181C]                              ; GDI32.RealizePalette
004DE03A  - FF25 20184F00   jmp dword ptr ds:[4F1820]                              ; GDI32.RectVisible
004DE040  - FF25 24184F00   jmp dword ptr ds:[4F1824]                              ; GDI32.Rectangle
004DE046  - FF25 28184F00   jmp dword ptr ds:[4F1828]                              ; GDI32.RestoreDC
004DE04C  - FF25 2C184F00   jmp dword ptr ds:[4F182C]                              ; GDI32.SaveDC
004DE052  - FF25 30184F00   jmp dword ptr ds:[4F1830]                              ; GDI32.SelectClipRgn
004DE058  - FF25 34184F00   jmp dword ptr ds:[4F1834]                              ; GDI32.SelectObject
004DE05E  - FF25 38184F00   jmp dword ptr ds:[4F1838]                              ; GDI32.SelectPalette
004DE064  - FF25 3C184F00   jmp dword ptr ds:[4F183C]                              ; GDI32.SetBkColor
004DE06A  - FF25 40184F00   jmp dword ptr ds:[4F1840]                              ; GDI32.SetBkMode
004DE070  - FF25 44184F00   jmp dword ptr ds:[4F1844]                              ; GDI32.SetBrushOrgEx
004DE076  - FF25 48184F00   jmp dword ptr ds:[4F1848]                              ; GDI32.SetDIBColorTable
004DE07C  - FF25 4C184F00   jmp dword ptr ds:[4F184C]                              ; GDI32.SetEnhMetaFileBits
004DE082  - FF25 50184F00   jmp dword ptr ds:[4F1850]                              ; GDI32.SetMapMode
004DE088  - FF25 54184F00   jmp dword ptr ds:[4F1854]                              ; GDI32.SetPixel
004DE08E  - FF25 58184F00   jmp dword ptr ds:[4F1858]                              ; GDI32.SetROP2
004DE094  - FF25 5C184F00   jmp dword ptr ds:[4F185C]                              ; GDI32.SetStretchBltMode
004DE09A  - FF25 60184F00   jmp dword ptr ds:[4F1860]                              ; GDI32.SetTextColor
004DE0A0  - FF25 64184F00   jmp dword ptr ds:[4F1864]                              ; GDI32.SetViewportExtEx
004DE0A6  - FF25 68184F00   jmp dword ptr ds:[4F1868]                              ; GDI32.SetViewportOrgEx
004DE0AC  - FF25 6C184F00   jmp dword ptr ds:[4F186C]                              ; GDI32.SetWinMetaFileBits
004DE0B2  - FF25 70184F00   jmp dword ptr ds:[4F1870]                              ; GDI32.SetWindowExtEx
004DE0B8  - FF25 74184F00   jmp dword ptr ds:[4F1874]                              ; GDI32.SetWindowOrgEx
004DE0BE  - FF25 78184F00   jmp dword ptr ds:[4F1878]                              ; GDI32.StretchBlt
004DE0C4  - FF25 7C184F00   jmp dword ptr ds:[4F187C]                              ; GDI32.UnrealizeObject
004DE0CA    CC              int3
004DE0CB    CC              int3
004DE0CC  - FF25 98184F00   jmp dword ptr ds:[4F1898]                              ; SHELL32.DragAcceptFiles
004DE0D2  - FF25 9C184F00   jmp dword ptr ds:[4F189C]                              ; SHELL32.DragFinish
004DE0D8  - FF25 A0184F00   jmp dword ptr ds:[4F18A0]                              ; SHELL32.DragQueryFileA
004DE0DE  - FF25 A4184F00   jmp dword ptr ds:[4F18A4]                              ; SHELL32.ShellExecuteA
004DE0E4  - FF25 841B4F00   jmp dword ptr ds:[4F1B84]                              ; USER32.ActivateKeyboardLayout
004DE0EA  - FF25 881B4F00   jmp dword ptr ds:[4F1B88]                              ; USER32.AdjustWindowRectEx
004DE0F0  - FF25 8C1B4F00   jmp dword ptr ds:[4F1B8C]                              ; USER32.BeginPaint
004DE0F6  - FF25 901B4F00   jmp dword ptr ds:[4F1B90]                              ; USER32.CallNextHookEx
004DE0FC  - FF25 941B4F00   jmp dword ptr ds:[4F1B94]                              ; USER32.CallWindowProcA
004DE102  - FF25 981B4F00   jmp dword ptr ds:[4F1B98]                              ; USER32.CharLowerA
004DE108  - FF25 9C1B4F00   jmp dword ptr ds:[4F1B9C]                              ; USER32.CharLowerBuffA
004DE10E  - FF25 A01B4F00   jmp dword ptr ds:[4F1BA0]                              ; USER32.CharNextA
004DE114  - FF25 A41B4F00   jmp dword ptr ds:[4F1BA4]                              ; USER32.CharUpperBuffA
004DE11A  - FF25 A81B4F00   jmp dword ptr ds:[4F1BA8]                              ; USER32.CheckMenuItem
004DE120  - FF25 AC1B4F00   jmp dword ptr ds:[4F1BAC]                              ; USER32.ChildWindowFromPoint
004DE126  - FF25 B01B4F00   jmp dword ptr ds:[4F1BB0]                              ; USER32.ClientToScreen
004DE12C  - FF25 B41B4F00   jmp dword ptr ds:[4F1BB4]                              ; USER32.CloseClipboard
004DE132  - FF25 B81B4F00   jmp dword ptr ds:[4F1BB8]                              ; USER32.CreateIcon
004DE138  - FF25 BC1B4F00   jmp dword ptr ds:[4F1BBC]                              ; USER32.CreateMenu
004DE13E  - FF25 C01B4F00   jmp dword ptr ds:[4F1BC0]                              ; USER32.CreatePopupMenu
004DE144  - FF25 C41B4F00   jmp dword ptr ds:[4F1BC4]                              ; USER32.CreateWindowExA
004DE14A  - FF25 C81B4F00   jmp dword ptr ds:[4F1BC8]                              ; USER32.DefFrameProcA
004DE150  - FF25 CC1B4F00   jmp dword ptr ds:[4F1BCC]                              ; USER32.DefMDIChildProcA
004DE156  - FF25 D01B4F00   jmp dword ptr ds:[4F1BD0]                              ; USER32.DefWindowProcA
004DE15C  - FF25 D41B4F00   jmp dword ptr ds:[4F1BD4]                              ; USER32.DeleteMenu
004DE162  - FF25 D81B4F00   jmp dword ptr ds:[4F1BD8]                              ; USER32.DestroyIcon
004DE168  - FF25 DC1B4F00   jmp dword ptr ds:[4F1BDC]                              ; USER32.DestroyIcon
004DE16E  - FF25 E01B4F00   jmp dword ptr ds:[4F1BE0]                              ; USER32.DestroyMenu
004DE174  - FF25 E41B4F00   jmp dword ptr ds:[4F1BE4]                              ; USER32.DestroyWindow
004DE17A  - FF25 E81B4F00   jmp dword ptr ds:[4F1BE8]                              ; USER32.DispatchMessageA
004DE180  - FF25 EC1B4F00   jmp dword ptr ds:[4F1BEC]                              ; USER32.DrawEdge
004DE186  - FF25 F01B4F00   jmp dword ptr ds:[4F1BF0]                              ; USER32.DrawFocusRect
004DE18C  - FF25 F41B4F00   jmp dword ptr ds:[4F1BF4]                              ; USER32.DrawFrameControl
004DE192  - FF25 F81B4F00   jmp dword ptr ds:[4F1BF8]                              ; USER32.DrawIcon
004DE198  - FF25 FC1B4F00   jmp dword ptr ds:[4F1BFC]                              ; USER32.DrawIconEx
004DE19E  - FF25 001C4F00   jmp dword ptr ds:[4F1C00]                              ; USER32.DrawMenuBar
004DE1A4  - FF25 041C4F00   jmp dword ptr ds:[4F1C04]                              ; USER32.DrawTextA
004DE1AA  - FF25 081C4F00   jmp dword ptr ds:[4F1C08]                              ; USER32.EmptyClipboard
004DE1B0  - FF25 0C1C4F00   jmp dword ptr ds:[4F1C0C]                              ; USER32.EnableMenuItem
004DE1B6  - FF25 101C4F00   jmp dword ptr ds:[4F1C10]                              ; USER32.EnableScrollBar
004DE1BC  - FF25 141C4F00   jmp dword ptr ds:[4F1C14]                              ; USER32.EnableWindow
004DE1C2  - FF25 181C4F00   jmp dword ptr ds:[4F1C18]                              ; USER32.EndPaint
004DE1C8  - FF25 1C1C4F00   jmp dword ptr ds:[4F1C1C]                              ; USER32.EnumClipboardFormats
004DE1CE  - FF25 201C4F00   jmp dword ptr ds:[4F1C20]                              ; USER32.EnumThreadWindows
004DE1D4  - FF25 241C4F00   jmp dword ptr ds:[4F1C24]                              ; USER32.EnumWindows
004DE1DA  - FF25 281C4F00   jmp dword ptr ds:[4F1C28]                              ; USER32.EqualRect
004DE1E0  - FF25 2C1C4F00   jmp dword ptr ds:[4F1C2C]                              ; USER32.FillRect
004DE1E6  - FF25 301C4F00   jmp dword ptr ds:[4F1C30]                              ; USER32.FindWindowA
004DE1EC  - FF25 341C4F00   jmp dword ptr ds:[4F1C34]                              ; USER32.FrameRect
004DE1F2  - FF25 381C4F00   jmp dword ptr ds:[4F1C38]                              ; USER32.GetActiveWindow
004DE1F8  - FF25 3C1C4F00   jmp dword ptr ds:[4F1C3C]                              ; USER32.GetCapture
004DE1FE  - FF25 401C4F00   jmp dword ptr ds:[4F1C40]                              ; USER32.GetCaretPos
004DE204  - FF25 441C4F00   jmp dword ptr ds:[4F1C44]                              ; USER32.GetClassInfoA
004DE20A  - FF25 481C4F00   jmp dword ptr ds:[4F1C48]                              ; USER32.GetClassNameA
004DE210  - FF25 4C1C4F00   jmp dword ptr ds:[4F1C4C]                              ; USER32.GetClientRect
004DE216  - FF25 501C4F00   jmp dword ptr ds:[4F1C50]                              ; USER32.GetClipboardData
004DE21C  - FF25 541C4F00   jmp dword ptr ds:[4F1C54]                              ; USER32.GetComboBoxInfo
004DE222  - FF25 581C4F00   jmp dword ptr ds:[4F1C58]                              ; USER32.GetCursor
004DE228  - FF25 5C1C4F00   jmp dword ptr ds:[4F1C5C]                              ; USER32.GetCursorPos
004DE22E  - FF25 601C4F00   jmp dword ptr ds:[4F1C60]                              ; USER32.GetDC
004DE234  - FF25 641C4F00   jmp dword ptr ds:[4F1C64]                              ; USER32.GetDCEx
004DE23A  - FF25 681C4F00   jmp dword ptr ds:[4F1C68]                              ; USER32.GetDesktopWindow
004DE240  - FF25 6C1C4F00   jmp dword ptr ds:[4F1C6C]                              ; USER32.GetDlgItem
004DE246  - FF25 701C4F00   jmp dword ptr ds:[4F1C70]                              ; USER32.GetDoubleClickTime
004DE24C  - FF25 741C4F00   jmp dword ptr ds:[4F1C74]                              ; USER32.GetFocus
004DE252  - FF25 781C4F00   jmp dword ptr ds:[4F1C78]                              ; USER32.GetForegroundWindow
004DE258  - FF25 7C1C4F00   jmp dword ptr ds:[4F1C7C]                              ; USER32.GetIconInfo
004DE25E  - FF25 801C4F00   jmp dword ptr ds:[4F1C80]                              ; USER32.GetKeyNameTextA
004DE264  - FF25 841C4F00   jmp dword ptr ds:[4F1C84]                              ; USER32.GetKeyState
004DE26A  - FF25 881C4F00   jmp dword ptr ds:[4F1C88]                              ; USER32.GetKeyboardLayout
004DE270  - FF25 8C1C4F00   jmp dword ptr ds:[4F1C8C]                              ; USER32.GetKeyboardLayoutList
004DE276  - FF25 901C4F00   jmp dword ptr ds:[4F1C90]                              ; USER32.GetKeyboardState
004DE27C  - FF25 941C4F00   jmp dword ptr ds:[4F1C94]                              ; USER32.GetKeyboardType
004DE282  - FF25 981C4F00   jmp dword ptr ds:[4F1C98]                              ; USER32.GetLastActivePopup
004DE288  - FF25 9C1C4F00   jmp dword ptr ds:[4F1C9C]                              ; USER32.GetMenu
004DE28E  - FF25 A01C4F00   jmp dword ptr ds:[4F1CA0]                              ; USER32.GetMenuItemCount
004DE294  - FF25 A41C4F00   jmp dword ptr ds:[4F1CA4]                              ; USER32.GetMenuItemID
004DE29A  - FF25 A81C4F00   jmp dword ptr ds:[4F1CA8]                              ; USER32.GetMenuItemInfoA
004DE2A0  - FF25 AC1C4F00   jmp dword ptr ds:[4F1CAC]                              ; USER32.GetMenuState
004DE2A6  - FF25 B01C4F00   jmp dword ptr ds:[4F1CB0]                              ; USER32.GetMenuStringA
004DE2AC  - FF25 B41C4F00   jmp dword ptr ds:[4F1CB4]                              ; USER32.GetMessagePos
004DE2B2  - FF25 B81C4F00   jmp dword ptr ds:[4F1CB8]                              ; USER32.GetMessageTime
004DE2B8  - FF25 BC1C4F00   jmp dword ptr ds:[4F1CBC]                              ; USER32.GetParent
004DE2BE  - FF25 C01C4F00   jmp dword ptr ds:[4F1CC0]                              ; USER32.GetPropA
004DE2C4  - FF25 C41C4F00   jmp dword ptr ds:[4F1CC4]                              ; USER32.GetScrollBarInfo
004DE2CA  - FF25 C81C4F00   jmp dword ptr ds:[4F1CC8]                              ; USER32.GetScrollInfo
004DE2D0  - FF25 CC1C4F00   jmp dword ptr ds:[4F1CCC]                              ; USER32.GetScrollPos
004DE2D6  - FF25 D01C4F00   jmp dword ptr ds:[4F1CD0]                              ; USER32.GetScrollRange
004DE2DC  - FF25 D41C4F00   jmp dword ptr ds:[4F1CD4]                              ; USER32.GetSubMenu
004DE2E2  - FF25 D81C4F00   jmp dword ptr ds:[4F1CD8]                              ; USER32.GetSystemMenu
004DE2E8  - FF25 DC1C4F00   jmp dword ptr ds:[4F1CDC]                              ; USER32.GetSystemMetrics
004DE2EE  - FF25 E01C4F00   jmp dword ptr ds:[4F1CE0]                              ; USER32.GetTopWindow
004DE2F4  - FF25 E41C4F00   jmp dword ptr ds:[4F1CE4]                              ; USER32.GetWindow
004DE2FA  - FF25 E81C4F00   jmp dword ptr ds:[4F1CE8]                              ; USER32.GetWindowDC
004DE300  - FF25 EC1C4F00   jmp dword ptr ds:[4F1CEC]                              ; USER32.GetWindowLongA
004DE306  - FF25 F01C4F00   jmp dword ptr ds:[4F1CF0]                              ; USER32.GetWindowPlacement
004DE30C  - FF25 F41C4F00   jmp dword ptr ds:[4F1CF4]                              ; USER32.GetWindowRect
004DE312  - FF25 F81C4F00   jmp dword ptr ds:[4F1CF8]                              ; USER32.GetWindowTextA
004DE318  - FF25 FC1C4F00   jmp dword ptr ds:[4F1CFC]                              ; USER32.GetWindowThreadProcessId
004DE31E  - FF25 001D4F00   jmp dword ptr ds:[4F1D00]                              ; USER32.InflateRect
004DE324  - FF25 041D4F00   jmp dword ptr ds:[4F1D04]                              ; USER32.InsertMenuA
004DE32A  - FF25 081D4F00   jmp dword ptr ds:[4F1D08]                              ; USER32.InsertMenuItemA
004DE330  - FF25 0C1D4F00   jmp dword ptr ds:[4F1D0C]                              ; USER32.IntersectRect
004DE336  - FF25 101D4F00   jmp dword ptr ds:[4F1D10]                              ; USER32.InvalidateRect
004DE33C  - FF25 141D4F00   jmp dword ptr ds:[4F1D14]                              ; USER32.IsCharAlphaA
004DE342  - FF25 181D4F00   jmp dword ptr ds:[4F1D18]                              ; USER32.IsCharAlphaNumericA
004DE348  - FF25 1C1D4F00   jmp dword ptr ds:[4F1D1C]                              ; USER32.IsChild
004DE34E  - FF25 201D4F00   jmp dword ptr ds:[4F1D20]                              ; USER32.IsDialogMessageA
004DE354  - FF25 241D4F00   jmp dword ptr ds:[4F1D24]                              ; USER32.IsIconic
004DE35A  - FF25 281D4F00   jmp dword ptr ds:[4F1D28]                              ; USER32.IsRectEmpty
004DE360  - FF25 2C1D4F00   jmp dword ptr ds:[4F1D2C]                              ; USER32.IsWindow
004DE366  - FF25 301D4F00   jmp dword ptr ds:[4F1D30]                              ; USER32.IsWindowEnabled
004DE36C  - FF25 341D4F00   jmp dword ptr ds:[4F1D34]                              ; USER32.IsWindowVisible
004DE372  - FF25 381D4F00   jmp dword ptr ds:[4F1D38]                              ; USER32.IsZoomed
004DE378  - FF25 3C1D4F00   jmp dword ptr ds:[4F1D3C]                              ; USER32.KillTimer
004DE37E  - FF25 401D4F00   jmp dword ptr ds:[4F1D40]                              ; USER32.LoadBitmapA
004DE384  - FF25 441D4F00   jmp dword ptr ds:[4F1D44]                              ; USER32.LoadCursorA
004DE38A  - FF25 481D4F00   jmp dword ptr ds:[4F1D48]                              ; USER32.LoadIconA
004DE390  - FF25 4C1D4F00   jmp dword ptr ds:[4F1D4C]                              ; USER32.LoadImageA
004DE396  - FF25 501D4F00   jmp dword ptr ds:[4F1D50]                              ; USER32.LoadKeyboardLayoutA
004DE39C  - FF25 541D4F00   jmp dword ptr ds:[4F1D54]                              ; USER32.LoadStringA
004DE3A2  - FF25 581D4F00   jmp dword ptr ds:[4F1D58]                              ; USER32.MapVirtualKeyA
004DE3A8  - FF25 5C1D4F00   jmp dword ptr ds:[4F1D5C]                              ; USER32.MapWindowPoints
004DE3AE  - FF25 601D4F00   jmp dword ptr ds:[4F1D60]                              ; USER32.MessageBeep
004DE3B4  - FF25 641D4F00   jmp dword ptr ds:[4F1D64]                              ; USER32.MessageBoxA
004DE3BA  - FF25 681D4F00   jmp dword ptr ds:[4F1D68]                              ; USER32.OemToCharA
004DE3C0  - FF25 6C1D4F00   jmp dword ptr ds:[4F1D6C]                              ; USER32.OffsetRect
004DE3C6  - FF25 701D4F00   jmp dword ptr ds:[4F1D70]                              ; USER32.OpenClipboard
004DE3CC  - FF25 741D4F00   jmp dword ptr ds:[4F1D74]                              ; USER32.PeekMessageA
004DE3D2  - FF25 781D4F00   jmp dword ptr ds:[4F1D78]                              ; USER32.PostMessageA
004DE3D8  - FF25 7C1D4F00   jmp dword ptr ds:[4F1D7C]                              ; USER32.PostQuitMessage
004DE3DE  - FF25 801D4F00   jmp dword ptr ds:[4F1D80]                              ; USER32.PtInRect
004DE3E4  - FF25 841D4F00   jmp dword ptr ds:[4F1D84]                              ; USER32.RedrawWindow
004DE3EA  - FF25 881D4F00   jmp dword ptr ds:[4F1D88]                              ; USER32.RegisterClassA
004DE3F0  - FF25 8C1D4F00   jmp dword ptr ds:[4F1D8C]                              ; USER32.RegisterWindowMessageA
004DE3F6  - FF25 901D4F00   jmp dword ptr ds:[4F1D90]                              ; USER32.RegisterWindowMessageA
004DE3FC  - FF25 941D4F00   jmp dword ptr ds:[4F1D94]                              ; USER32.ReleaseCapture
004DE402  - FF25 981D4F00   jmp dword ptr ds:[4F1D98]                              ; USER32.ReleaseDC
004DE408  - FF25 9C1D4F00   jmp dword ptr ds:[4F1D9C]                              ; USER32.RemoveMenu
004DE40E  - FF25 A01D4F00   jmp dword ptr ds:[4F1DA0]                              ; USER32.RemovePropA
004DE414  - FF25 A41D4F00   jmp dword ptr ds:[4F1DA4]                              ; USER32.ScreenToClient
004DE41A  - FF25 A81D4F00   jmp dword ptr ds:[4F1DA8]                              ; USER32.ScrollWindow
004DE420  - FF25 AC1D4F00   jmp dword ptr ds:[4F1DAC]                              ; USER32.ScrollWindowEx
004DE426  - FF25 B01D4F00   jmp dword ptr ds:[4F1DB0]                              ; USER32.SendMessageA
004DE42C  - FF25 B41D4F00   jmp dword ptr ds:[4F1DB4]                              ; USER32.SetActiveWindow
004DE432  - FF25 B81D4F00   jmp dword ptr ds:[4F1DB8]                              ; USER32.SetCapture
004DE438  - FF25 BC1D4F00   jmp dword ptr ds:[4F1DBC]                              ; USER32.SetClassLongA
004DE43E  - FF25 C01D4F00   jmp dword ptr ds:[4F1DC0]                              ; USER32.SetClipboardData
004DE444  - FF25 C41D4F00   jmp dword ptr ds:[4F1DC4]                              ; USER32.SetCursor
004DE44A  - FF25 C81D4F00   jmp dword ptr ds:[4F1DC8]                              ; USER32.SetFocus
004DE450  - FF25 CC1D4F00   jmp dword ptr ds:[4F1DCC]                              ; USER32.SetForegroundWindow
004DE456  - FF25 D01D4F00   jmp dword ptr ds:[4F1DD0]                              ; USER32.SetKeyboardState
004DE45C  - FF25 D41D4F00   jmp dword ptr ds:[4F1DD4]                              ; USER32.SetMenu
004DE462  - FF25 D81D4F00   jmp dword ptr ds:[4F1DD8]                              ; USER32.SetMenuItemInfoA
004DE468  - FF25 DC1D4F00   jmp dword ptr ds:[4F1DDC]                              ; USER32.SetPropA
004DE46E  - FF25 E01D4F00   jmp dword ptr ds:[4F1DE0]                              ; USER32.SetRect
004DE474  - FF25 E41D4F00   jmp dword ptr ds:[4F1DE4]                              ; USER32.SetScrollInfo
004DE47A  - FF25 E81D4F00   jmp dword ptr ds:[4F1DE8]                              ; USER32.SetScrollPos
004DE480  - FF25 EC1D4F00   jmp dword ptr ds:[4F1DEC]                              ; USER32.SetScrollRange
004DE486  - FF25 F01D4F00   jmp dword ptr ds:[4F1DF0]                              ; USER32.SetTimer
004DE48C  - FF25 F41D4F00   jmp dword ptr ds:[4F1DF4]                              ; USER32.SetWindowLongA
004DE492  - FF25 F81D4F00   jmp dword ptr ds:[4F1DF8]                              ; USER32.SetWindowPlacement
004DE498  - FF25 FC1D4F00   jmp dword ptr ds:[4F1DFC]                              ; USER32.SetWindowPos
004DE49E  - FF25 001E4F00   jmp dword ptr ds:[4F1E00]                              ; USER32.SetWindowRgn
004DE4A4  - FF25 041E4F00   jmp dword ptr ds:[4F1E04]                              ; USER32.SetWindowTextA
004DE4AA  - FF25 081E4F00   jmp dword ptr ds:[4F1E08]                              ; USER32.SetWindowsHookExA
004DE4B0  - FF25 0C1E4F00   jmp dword ptr ds:[4F1E0C]                              ; USER32.ShowCursor
004DE4B6  - FF25 101E4F00   jmp dword ptr ds:[4F1E10]                              ; USER32.ShowOwnedPopups
004DE4BC  - FF25 141E4F00   jmp dword ptr ds:[4F1E14]                              ; USER32.ShowScrollBar
004DE4C2  - FF25 181E4F00   jmp dword ptr ds:[4F1E18]                              ; USER32.ShowWindow
004DE4C8  - FF25 1C1E4F00   jmp dword ptr ds:[4F1E1C]                              ; USER32.SystemParametersInfoA
004DE4CE  - FF25 201E4F00   jmp dword ptr ds:[4F1E20]                              ; USER32.TrackPopupMenu
004DE4D4  - FF25 241E4F00   jmp dword ptr ds:[4F1E24]                              ; USER32.TranslateMDISysAccel
004DE4DA  - FF25 281E4F00   jmp dword ptr ds:[4F1E28]                              ; USER32.TranslateMessage
004DE4E0  - FF25 2C1E4F00   jmp dword ptr ds:[4F1E2C]                              ; USER32.UnhookWindowsHookEx
004DE4E6  - FF25 301E4F00   jmp dword ptr ds:[4F1E30]                              ; USER32.UnionRect
004DE4EC  - FF25 341E4F00   jmp dword ptr ds:[4F1E34]                              ; USER32.UnregisterClassA
004DE4F2  - FF25 381E4F00   jmp dword ptr ds:[4F1E38]                              ; USER32.UpdateWindow
004DE4F8  - FF25 3C1E4F00   jmp dword ptr ds:[4F1E3C]                              ; USER32.ValidateRect
004DE4FE  - FF25 401E4F00   jmp dword ptr ds:[4F1E40]                              ; USER32.WaitMessage
004DE504  - FF25 441E4F00   jmp dword ptr ds:[4F1E44]                              ; USER32.WinHelpA
004DE50A  - FF25 481E4F00   jmp dword ptr ds:[4F1E48]                              ; USER32.WindowFromDC
004DE510  - FF25 4C1E4F00   jmp dword ptr ds:[4F1E4C]                              ; USER32.WindowFromPoint
004DE516  - FF25 501E4F00   jmp dword ptr ds:[4F1E50]                              ; USER32.wsprintfA
004DE51C  - FF25 541E4F00   jmp dword ptr ds:[4F1E54]                              ; USER32.GetSysColor
004DE522    CC              int3
004DE523    CC              int3
004DE524  - FF25 9C1E4F00   jmp dword ptr ds:[4F1E9C]                              ; oleaut32.SafeArrayCreate
004DE52A  - FF25 A01E4F00   jmp dword ptr ds:[4F1EA0]                              ; oleaut32.SafeArrayGetElement
004DE530  - FF25 A41E4F00   jmp dword ptr ds:[4F1EA4]                              ; oleaut32.SafeArrayGetLBound
004DE536  - FF25 A81E4F00   jmp dword ptr ds:[4F1EA8]                              ; oleaut32.SafeArrayGetUBound
004DE53C  - FF25 AC1E4F00   jmp dword ptr ds:[4F1EAC]                              ; oleaut32.SafeArrayPtrOfIndex
004DE542  - FF25 B01E4F00   jmp dword ptr ds:[4F1EB0]                              ; oleaut32.SafeArrayPutElement
004DE548  - FF25 B41E4F00   jmp dword ptr ds:[4F1EB4]                              ; oleaut32.SafeArrayRedim
004DE54E  - FF25 B81E4F00   jmp dword ptr ds:[4F1EB8]                              ; oleaut32.SysAllocStringLen
004DE554  - FF25 BC1E4F00   jmp dword ptr ds:[4F1EBC]                              ; oleaut32.SysFreeString
004DE55A  - FF25 C01E4F00   jmp dword ptr ds:[4F1EC0]                              ; oleaut32.SysReAllocStringLen
004DE560  - FF25 C41E4F00   jmp dword ptr ds:[4F1EC4]                              ; oleaut32.VariantChangeType
004DE566  - FF25 C81E4F00   jmp dword ptr ds:[4F1EC8]                              ; oleaut32.VariantClear
004DE56C  - FF25 CC1E4F00   jmp dword ptr ds:[4F1ECC]                              ; oleaut32.VariantCopy
004DE572  - FF25 D01E4F00   jmp dword ptr ds:[4F1ED0]                              ; oleaut32.VariantCopyInd
004DE578  - FF25 D41E4F00   jmp dword ptr ds:[4F1ED4]                              ; oleaut32.VariantInit            〈--- 结束地址为 004F1ED4 + 4 = 004F1ED8           
004DE57E    CC              int3
004DE57F    CC              int3
004DE580    0000            add byte ptr ds:[eax],al
004DE582    0000            add byte ptr ds:[eax],al
004DE584    0000            add byte ptr ds:[eax],al
004DE586    0000            add byte ptr ds:[eax],al

    我们找到了,输入表地址始于 :004F10F8
                        结束于 :004F1ED8
                          长度 :DE0
   
    所有的函数都没有经过加密,这倒是比较体谅我们!什么,下一步该干什么?用OD载入原程序,在程序OEP处(00401564)设内存访问断点,按2次F9键,程序便会停在OEP处,再次启动ImportRec.exe,找到"ExeGuarder.exe"进程,在OEP栏内仍然填00001564,用鼠标依次点击"IAT AutoSearch"和"Get Imports"按钮,我们看到,在OEP栏下面的RVA栏显示的是000F12D4,Size栏显示的是000001C8,这两个值都是错误的!让我们自己修改它,在RVA栏填入我们刚才找到的输入表首地址的RVA值000F10F8(000F10F8=004F10F8-00400000),在Size栏内填入输入表的长度00000DE0,这时,再次按下"Get Imports"按钮,这次找到了比原先多得多的Thunk和函数,有些Thunk有效,有些无效。因为我们事先知道,所有的系统函数都没有经过加密。所以,我们可以毫不犹豫地把所有那些无效的Thunk直接删除掉。接下来的工作当然是最后一道工序-"Fix Dump"了。经过这样处理后,程序已经可以正常运行了。

三、注册

    脱过壳后,程序已经基本没有什么秘密可言了,动、静态分析结合,很快找到检查注册码的函数:

00405DD8    FFB0 C8140000   push dword ptr ds:[eax+14C8]  <--- 键入的注册码地址
00405DDE    E8 A9FBFFFF     call ExeGuard.0040598C        <--- 返回EAX=2 表示注册码正确
   
    跟踪进去我们很快发现了两处ASCII 码字符串:

004059BD    BA 26F94D00     mov edx,ExeGuard.004DF926                  ; ASCII "QNBYZSFXWYBZDTSJLERRDBRYY-533SV2"

00405A17    BA 47F94D00     mov edx,ExeGuard.004DF947                  ; ASCII "RGNXSULBBPJLXZCBBYDBDDCFY-533FV2"

    经过输入证实,注册码是固定的字符串,与所谓的邮箱地址毫无关系,这两个字符串就是注册码!

RGNXSULBBPJLXZCBBYDBDDCFY-533FV2  -- 永久注册码
QNBYZSFXWYBZDTSJLERRDBRYY-533SV2  -- 20次限用注册码

    --如果引用或转载请注明作者和出处,并保持文章的完整性,谢谢!--        
                       ---- 2005年12月8日----

附件:exeguarder_dumped.part1.rar 附件:exeguarder_dumped.part2.rar

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
2005-12-8 07:43
0
雪    币: 217
活跃值: (91)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
介绍全面,利于学习
2005-12-8 08:46
0
雪    币: 3638
活跃值: (4197)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
4
学习完毕。

顺便把关闭时候打开软件主页的部分去掉吧。
2005-12-8 08:59
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
5
ASPack

005A03BA     8BB5 3E2A4400      mov esi,dword ptr ss:[ebp+442A3E]
005A03C0     8B95 E0374400      mov edx,dword ptr ss:[ebp+4437E0]
005A03C6     03F2               add esi,edx
//ss:[005A00C2]=000F1000
//esi=000F1000
//这里dump,修改ImportTableRVA=000F1000,则不需要用ImportREC修复输入表
005A03C8     8B46 0C            mov eax,dword ptr ds:[esi+C]
005A03CB     85C0               test eax,eax
005A03CD     0F84 0A010000      je 005A04DD

或者用stripper_v207f自动脱壳,较完美
2005-12-8 09:52
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 china 发布
学习完毕。

顺便把关闭时候打开软件主页的部分去掉吧。


满足你这猴子!附件:exeguard_noopenurl.rar
2005-12-8 11:29
0
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
这个东西非常搞笑
用它加密的程序只要改个oep就可以正常运行了
2005-12-8 11:39
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
8
确实,LeapFTP也使用这玩意的,直接把正确的入口代码写入原程序就完事了。
2005-12-8 11:45
0
雪    币: 3638
活跃值: (4197)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
9
最初由 鹅蛋壳 发布



满足你这猴子!附件:exeguard_noopenurl.rar


我不用这东西, 只是提醒一下而已。
2005-12-8 12:31
0
游客
登录 | 注册 方可回帖
返回
//