Материал исключительно для реверсеров и разрабов, остальным не пригодиться. Рассчитан на реверсеров новичков и разрабам которые не очень в реверс, а еще на занятых и ленивых.
Собственно весь материал это восстановленный к экзешнику локбита 3.0 импорт и скрптик дешифровки строк с некоторыми пояснениями.
База загрузки 008a0000.
Импорты для тех кому сразу же интересно что же оно делает и как
Как получил импорты:
Оно очень любит делать гейты на вызов апи и всякого кода доставаемого из архива.
Импорты были получены в виндебаг таким вот патчем, знаю можно короче но мне надо было быстрее и да знаю что есть push nnnn но как то сходу не вспомнил код, короче кто докопаеться тот редиска.
После отработки всех вызовов получения импортов смотрим 008c5400 с отображением символов и видим импорты.
Что за гейты?
Оно на хипе размещает конструкции типа
которые ведут к апи ли разархивированным процедурам.
Что за разархивированные процедуры?
Ну например такое
Строки шифрованы но ничего критичного.
Вот скрипт дешифровки, там шифров много но вы и без меня скриптов наделаете. Писать скрипты для иды не умею поэтому просто питонил.
В архиве оригинальный экзешник и с востановленными импотрами, на точке входа 0xcc.
По факту импорты не востановлены а созданы, но это детали.
Если кто напишет скрипты для иды как там все строки расшифровать будет круто и респектабельно.
Да ида будет вонять на импорты но забейте, для реверса файлы годный.
Собственно весь материал это восстановленный к экзешнику локбита 3.0 импорт и скрптик дешифровки строк с некоторыми пояснениями.
База загрузки 008a0000.
Импорты для тех кому сразу же интересно что же оно делает и как
Код:
008c53f8 ntdll!LdrLoadDll
008c53fc ntdll!LdrGetProcedureAddress
008c5400 KERNEL32!FindFirstFileW
008c5404 KERNEL32!FindNextFileW
008c5408 KERNEL32!FindClose
008c540c
008c5410 ntdll!RtlCreateHeap
008c5414 ntdll!RtlDestroyHeap
008c5418 ntdll!RtlAllocateHeap
008c541c ntdll!RtlReAllocateHeap
008c5420 ntdll!RtlFreeHeap
008c5424 ntdll!memcpy
008c5428 ntdll!memset
008c542c ntdll!memmove
008c5430 ntdll!strlen
008c5434 ntdll!strcpy
008c5438 ntdll!strstr
008c543c ntdll!wcslen
008c5440 ntdll!wcscat
008c5444 ntdll!wcscpy
008c5448 ntdll!wcsstr
008c544c ntdll!wcschr
008c5450 ntdll!wcsrchr
008c5454 ntdll!_wcsicmp
008c5458 ntdll!_wcslwr
008c545c ntdll!_wcsupr
008c5460 ntdll!_strupr
008c5464 ntdll!_swprintf
008c5468 ntdll!sprintf
008c546c ntdll!_ui64toa
008c5470 ntdll!_alldiv
008c5474 ntdll!NtOpenProcess
008c5478 ntdll!NtDuplicateToken
008c547c ntdll!NtDuplicateObject
008c5480 ntdll!NtSetThreadExecutionState
008c5484 ntdll!NtSetInformationProcess
008c5488 ntdll!NtQuerySystemInformation
008c548c ntdll!NtQueryInformationProcess
008c5490 ntdll!NtQueryInformationToken
008c5494 ntdll!NtSetInformationToken
008c5498 ntdll!NtSetInformationThread
008c549c ntdll!NtSetSecurityObject
008c54a0 ntdll!NtOpenProcessToken
008c54a4 ntdll!NtShutdownSystem
008c54a8 ntdll!RtlAdjustPrivilege
008c54ac ntdll!RtlInitializeCriticalSection
008c54b0 ntdll!RtlEnterCriticalSection
008c54b4 ntdll!RtlLeaveCriticalSection
008c54b8 ntdll!RtlDeleteCriticalSection
008c54bc ntdll!RtlInitUnicodeString
008c54c0 ntdll!RtlSetHeapInformation
008c54c4 ntdll!LdrEnumerateLoadedModules
008c54c8 ntdll!NtTerminateProcess
008c54cc ntdll!NtTerminateThread
008c54d0 ntdll!NtClose
008c54d4 ntdll!NtPrivilegeCheck
008c54d8 ntdll!NtWriteVirtualMemory
008c54dc ntdll!NtReadVirtualMemory
008c54e0 ntdll!NtProtectVirtualMemory
008c54e4 ntdll!NtAllocateVirtualMemory
008c54e8 ntdll!NtFreeVirtualMemory
008c54ec ntdll!RtlWow64EnableFsRedirectionEx
008c54f0 ntdll!NtQueryInstallUILanguage
008c54f4 ntdll!NtQueryDefaultUILanguage
008c54f8 ntdll!RtlTimeToTimeFields
008c54fc
008c5500 KERNEL32!SetFileAttributesW
008c5504 KERNEL32!GetFileAttributesW
008c5508 KERNEL32!FindFirstFileExW
008c550c KERNEL32!FindNextFileW
008c5510 KERNEL32!FindClose
008c5514 KERNEL32!CopyFileW
008c5518 KERNEL32!MoveFileExWStub
008c551c KERNEL32!CreateThreadStub
008c5520 KERNEL32!CreateRemoteThreadStub
008c5524 KERNEL32!ResumeThreadStub
008c5528 KERNEL32!CreateFileW
008c552c KERNEL32!WriteFile
008c5530 KERNEL32!ReadFile
008c5534 KERNEL32!FlushFileBuffers
008c5538 KERNEL32!WinExec
008c553c KERNEL32!SleepStub
008c5540 KERNEL32!GetOverlappedResultStub
008c5544 KERNEL32!SetFilePointerEx
008c5548 KERNEL32!WaitForSingleObject
008c554c KERNEL32!WaitForMultipleObjects
008c5550 KERNEL32!CreateIoCompletionPortStub
008c5554 KERNEL32!GetQueuedCompletionStatusStub
008c5558 KERNEL32!PostQueuedCompletionStatusStub
008c555c KERNEL32!InterlockedIncrementStub
008c5560 KERNEL32!GetExitCodeThreadStub
008c5564 KERNEL32!GetLogicalDriveStringsW
008c5568 KERNEL32!GetDriveTypeW
008c556c KERNEL32!GetDiskFreeSpaceExW
008c5570 KERNEL32!DeleteFileW
008c5574 KERNEL32!CreateDirectoryW
008c5578 KERNEL32!RemoveDirectoryW
008c557c KERNEL32!OpenMutexW
008c5580 KERNEL32!CreateMutexW
008c5584 KERNEL32!ReleaseMutex
008c5588 KERNEL32!GetCurrentDirectoryWStub
008c558c KERNEL32!SetCurrentDirectoryWStub
008c5590 KERNEL32!GetTickCountStub
008c5594 KERNEL32!GetComputerNameW
008c5598 KERNEL32!SetVolumeMountPointW
008c559c KERNEL32!SetThreadPriorityStub
008c55a0 KERNEL32!GetVolumePathNameW
008c55a4 KERNEL32!FindFirstVolumeW
008c55a8 KERNEL32!FindNextVolumeW
008c55ac KERNEL32!FindVolumeClose
008c55b0 KERNEL32!DeviceIoControlImplementation
008c55b4 KERNEL32!GetVolumePathNamesForVolumeNameW
008c55b8 KERNEL32!GetVolumeNameForVolumeMountPointW
008c55bc KERNEL32!GetSystemTimeStub
008c55c0 KERNEL32!GetSystemTimeAsFileTimeStub
008c55c4 KERNEL32!FileTimeToLocalFileTime
008c55c8 KERNEL32!ExitProcessImplementation
008c55cc KERNEL32!GetEnvironmentVariableWStub
008c55d0 KERNEL32!GetShortPathNameW
008c55d4 KERNEL32!CreateProcessWStub
008c55d8 KERNEL32!CreateNamedPipeWStub
008c55dc KERNEL32!ConnectNamedPipeStub
008c55e0 KERNEL32!GetTempFileNameW
008c55e4 KERNEL32!GlobalFreeStub
008c55e8 KERNEL32!MulDiv
008c55ec
008c55f0 ntdll!MD4Init
008c55f4 ntdll!MD4Update
008c55f8 ntdll!MD4Final
008c55fc ntdll!MD5Init
008c5600 ntdll!MD5Update
008c5604 ntdll!MD5Final
008c5608 advapi32!SetNamedSecurityInfoWStub
008c560c advapi32!RegCreateKeyExWStub
008c5610 advapi32!RegSetValueExWStub
008c5614 advapi32!RegQueryValueExWStub
008c5618 advapi32!RegDeleteKeyExWStub
008c561c advapi32!RegDeleteKeyW
008c5620 advapi32!RegEnumKeyW
008c5624 advapi32!OpenSCManagerWStub
008c5628 advapi32!EnumServicesStatusExWStub
008c562c advapi32!OpenServiceWStub
008c5630 advapi32!CreateServiceWStub
008c5634 advapi32!StartServiceWStub
008c5638 advapi32!SetServiceStatusStub
008c563c advapi32!QueryServiceStatusExStub
008c5640 advapi32!ControlServiceStub
008c5644 advapi32!DeleteServiceStub
008c5648 advapi32!CloseServiceHandleStub
008c564c advapi32!StartServiceCtrlDispatcherWStub
008c5650 advapi32!RegisterServiceCtrlHandlerWStub
008c5654 advapi32!CreateProcessAsUserWStub
008c5658 advapi32!LogonUserW
008c565c advapi32!GetUserNameW
008c5660 advapi32!ConvertSidToStringSidW
008c5664 advapi32!LsaOpenPolicyStub
008c5668 advapi32!LsaStorePrivateDataStub
008c566c advapi32!LsaCloseStub
008c5670 CRYPTBASE!SystemFunction040
008c5674 CRYPTBASE!SystemFunction041
008c5678 advapi32!CheckTokenMembershipStub
008c567c advapi32!OpenEventLogW
008c5680 advapi32!ClearEventLogW
008c5684 advapi32!CloseEventLog
008c5688 advapi32!CreateProcessWithLogonW
008c568c
008c5690 userenv!CreateEnvironmentBlock
008c5694 userenv!DestroyEnvironmentBlock
008c5698 userenv!RefreshPolicyEx
008c569c
008c56a0 USER32!GetDC
008c56a4 USER32!ReleaseDC
008c56a8 USER32!DrawTextW
008c56ac USER32!DrawTextA
008c56b0 USER32!SystemParametersInfoW
008c56b4 USER32!OpenWindowStationW
008c56b8 USER32!NtUserCloseWindowStation
008c56bc USER32!OpenDesktopW
008c56c0 USER32!NtUserCloseDesktop
008c56c4 USER32!GetSystemMetrics
008c56c8 USER32!GetShellWindow
008c56cc USER32!GetCurrentThreadDesktopHwnd
008c56d0 USER32!IsWindowVisible
008c56d4
008c56d8 gdi32!CreateFontW
008c56dc gdi32!CreateFontIndirectW
008c56e0 gdi32!GetDeviceCaps
008c56e4 gdi32!BitBltStub
008c56e8 gdi32!SetBkColorStub
008c56ec gdi32!CreateDCW
008c56f0 gdi32!CreateCompatibleBitmapStub
008c56f4 gdi32!CreateCompatibleDCStub
008c56f8 gdi32!SelectObject
008c56fc gdi32!CreateDIBSectionStub
008c5700 gdi32!DeleteDC
008c5704 gdi32!DeleteObject
008c5708 gdi32!SetTextColor
008c570c gdi32!SetBkMode
008c5710 gdi32!SetMapModeStub
008c5714 gdi32!GetTextExtentPoint32WStub
008c5718 gdi32!StartDocW
008c571c gdi32!EndDoc
008c5720 gdi32!StartPage
008c5724 gdi32!EndPage
008c5728
008c572c shell32!CommandLineToArgvWStub
008c5730 shell32!SHGetSpecialFolderPathWStub
008c5734 shell32!ShellExecuteW
008c5738 shell32!SHChangeNotify
008c573c
008c5740 combase!CoCreateGuid
008c5744 ole32!CoInitialize
008c5748 combase!CoInitializeEx
008c574c combase!CoUninitialize
008c5750 ole32!CoGetObject
008c5754 combase!CoInitializeSecurity
008c5758 combase!CoCreateInstance
008c575c combase!CoCreateInstanceEx
008c5760 combase!CoSetProxyBlanket
008c5764
008c5768 shlwapi!PathFindExtensionWStub
008c576c shlwapi!PathIsNetworkPathWStub
008c5770 shlwapi!PathFindFileNameWStub
008c5774 shlwapi!PathFindFileNameAStub
008c5778 shlwapi!PathIsUNCServerWStub
008c577c shlwapi!PathQuoteSpacesWStub
008c5780 shlwapi!PathUnquoteSpacesWStub
008c5784 shlwapi!PathRemoveFileSpecWStub
008c5788 shlwapi!PathIsFileSpecWStub
008c578c shlwapi!PathIsDirectoryEmptyW
008c5790 shlwapi!PathAppendWStub
008c5794 shlwapi!PathAppendAStub
008c5798 shlwapi!IUnknown_QueryServiceStub
008c579c
008c57a0 oleaut32!VariantInit
008c57a4 oleaut32!VariantClear
008c57a8 oleaut32!SysAllocString
008c57ac oleaut32!SysFreeString
008c57b0
008c57b4 wtsapi32!WTSQueryUserToken
008c57b8
008c57bc RstrtMgr!RmStartSession
008c57c0 RstrtMgr!RmRegisterResources
008c57c4 RstrtMgr!RmGetList
008c57c8 RstrtMgr!RmEndSession
008c57cc
008c57d0 WKSCLI!NetGetJoinInformation
008c57d4 SRVCLI!NetShareEnum
008c57d8 SAMCLI!NetUserEnum
008c57dc SAMCLI!NetUserSetInfo
008c57e0 SAMCLI!NetUserGetInfo
008c57e4 NETUTILS!NetApiBufferFree
008c57e8 LOGONCLI!DsGetDcNameW
008c57ec LOGONCLI!DsGetDcOpenW
008c57f0 LOGONCLI!DsGetDcNextW
008c57f4 LOGONCLI!DsGetDcCloseW
008c57f8
008c57fc activeds!ADsOpenObject
008c5800 activeds!ADsGetObject
008c5804 activeds!ADsBuildEnumerator
008c5808 activeds!ADsEnumerateNext
008c580c activeds!ADsFreeEnumerator
008c5810
008c5814 wininet!InternetOpenW
008c5818 wininet!InternetConnectW
008c581c wininet!InternetSetOptionW
008c5820 wininet!InternetQueryOptionW
008c5824 wininet!InternetCloseHandle
008c5828 wininet!HttpQueryInfoW
008c582c wininet!HttpOpenRequestW
008c5830 wininet!HttpSendRequestW
008c5834 wininet!InternetQueryDataAvailable
008c5838 wininet!InternetReadFile
008c583c
008c5840 WS2_32!WSAStartup
008c5844 WS2_32!WSACleanup
008c5848 WS2_32!gethostbyname
008c584c
008c5850 mpr!WNetAddConnection2W
008c5854 mpr!WNetCancelConnection2W
008c5858
008c585c winspool!OpenPrinterW
008c5860 winspool!ClosePrinter
008c5864 winspool!EnumPrintersW
008c5868 winspool!DocumentPropertiesW
008c586c
008c5870 gpedit!CreateGPOLink
Оно очень любит делать гейты на вызов апи и всякого кода доставаемого из архива.
Импорты были получены в виндебаг таким вот патчем, знаю можно короче но мне надо было быстрее и да знаю что есть push nnnn но как то сходу не вспомнил код, короче кто докопаеться тот редиска.
Код:
008a5ded ab stos dword ptr es:[edi]
008a5dee b8d35d8a00 mov eax,offset LB3+0x5dd3 (008a5dd3)
008a5df3 50 push eax
008a5df4 c3 ret
После отработки всех вызовов получения импортов смотрим 008c5400 с отображением символов и видим импорты.
Что за гейты?
Оно на хипе размещает конструкции типа
Код:
Gate is:
02cb0990 b814175989 mov eax,89591714h
02cb0995 c1c003 rol eax,3
02cb0998 35c7bf0348 xor eax,4803BFC7h
02cb099d ffe0 jmp eax
How it made:
...
.text:008B76EA 74 53 jz short loc_8B773F
.text:008B76EC 56 push esi
.text:008B76ED 57 push edi
.text:008B76EE E8 B1 14 00 00 call Unpack
.text:008B76F3 83 C4 08 add esp, 8
.text:008B76F6 8D B6 83 00 00 00 lea esi, [esi+83h]
.text:008B76FC FF 75 0C push [ebp+pRtlAllocateHeap]
.text:008B76FF FF 75 08 push [ebp+arg_0]
.text:008B7702 56 push esi
.text:008B7703 E8 4C 00 00 00 call CreateJumpGateTo
.text:008B7708 A3 9C 51 8C 00 mov crypt_alg_83, eax
.text:008B770D 8D 76 41 lea esi, [esi+41h]
.text:008B7710 FF 75 0C push [ebp+pRtlAllocateHeap]
.text:008B7713 FF 75 08 push [ebp+arg_0]
.text:008B7716 56 push esi
.text:008B7717 E8 38 00 00 00 call CreateJumpGateTo
.text:008B771C A3 94 51 8C 00 mov crypt_alg_41, eax
.text:008B7721 8D B6 D7 00 00 00 lea esi, [esi+0D7h]
.text:008B7727 FF 75 0C push [ebp+pRtlAllocateHeap]
.text:008B772A FF 75 08 push [ebp+arg_0]
.text:008B772D 56 push esi
.text:008B772E E8 21 00 00 00 call CreateJumpGateTo
.text:008B7733 A3 98 51 8C 00 mov crypt_alg_d7, eax
.text:008B7738 C7 45 FC 01 00 00 00 mov [ebp+var_4], 1
..
Что за разархивированные процедуры?
Ну например такое
Код:
8b76cf
before unpack
00da7940 53 00 51 6a 01 58 0f a2 f7 c1 e1 9e 02 40 07 95 c0 84 23 74 09 f9 c7 f0 80 06 f2 59 5b c3 6a 07 1b 58 33 c9 3b cc 0e 04 S.Qj.X.......@....#t.......Y[.j..X3.;...
00da7968 10 b2 f8 04 fa 5e 40 31 8b c8 c1 c9 0d ce 0f d0 ee c2 ff 3d e7 27 55 b1 ec 51 53 fc 45 0c fa 4d 18 14 0b c8 0a 10 75 ed .....^@1...........=.'U..QS.E..M......u.
00da7990 80 1a 08 f7 e1 5b 59 5d 7c c2 e1 be 10 a8 d8 0f 15 65 14 03 08 7f ee d3 a4 19 db 6d 6a cc 0f 03 1d c0 04 68 2d f4 51 58 .....[Y]|........e.........mj......h-.QX
00da79b8 c0 0a 7f 95 4c 52 50 18 e8 ad ff 02 05 4f 1c 81 67 f7 c7 d2 7e 7b 91 14 89 03 cb 66 42 52 08 34 3c ff 73 73 19 33 e8 8e ....LRP......O..g...~{.....fBR.4<.ss.3..
00da79e0 3f 5b 91 82 08 de 0d e8 30 23 17 25 a5 26 06 0a 43 08 16 7b 0c 43 1b 20 10 7b 14 eb 0c 18 81 1c ed 05 0c 20 81 24 ec fa ?[......0#.%.&..C..{.C. .{......... .$..
00da7a08 fe 84 40 28 2c f6 ef 86 40 30 34 f6 e4 86 40 38 3c f6 d9 86 40 40 44 f6 ce 86 40 48 4c f6 c3 86 40 50 54 f6 b8 86 40 58 ..@(,...@04...@8<...@@D...@HL...@PT...@X
00da7a30 5c a2 b3 24 0b 60 0f 64 68 a2 64 68 0f 6c 68 97 64 70 0f 74 68 8c 61 78 81 e2 57 81 0c 22 7c 7b b8 92 79 07 69 d2 05 84 \..$.`.dh.dh.lh.dp.th.ax..W.."|{..y.i...
00da7a58 08 11 42 f7 e2 22 3c 62 2c 04 1a 94 d7 3f 56 57 bc 75 f7 51 7d c6 f2 87 37 06 23 56 04 ab 07 bb 57 ad 77 30 e5 47 1f 97 ..B.."<b,....?VW.u.Q}...7.#V....W.w0.G..
00da7a80 e0 42 37 28 46 ef 37 56 0c 22 68 3b 52 20 c8 48 20 ac 42 17 19 46 10 40 14 07 68 3b 43 c8 50 20 c1 f2 fd 88 46 18 c8 40 .B7(F.7V."h;R .H .B..F.@..h;C.P ....F..@
00da7aa8 1c 3b 41 da 1e 41 58 02 d6 d7 a4 20 20 08 24 3b 41 da 1e 41 60 02 eb b7 a4 20 28 08 2c 3b 41 da 1e 41 68 54 00 48 20 30 .;A..AX.... .$;A..A`.... (.,;A..AhT.H 0
00da7ad0 10 34 76 83 b4 3c 70 82 85 15 77 48 20 38 10 3c 76 83 b4 3c 78 80 7c 5f 49 5e 0f 60 00 00
after
02cb05c8 53 51 6a 01 58 0f a2 f7 c1 00 00 00 40 0f 95 c0 84 c0 74 09 0f c7 f0 0f c7 f2 59 5b c3 6a 07 58 33 c9 0f a2 f7 c3 00 00 SQj.X.......@.....t.......Y[.j.X3.......
02cb05f0 04 00 0f 95 c0 84 c0 74 09 0f c7 f8 0f c7 fa 59 5b c3 0f 31 8b c8 c1 c9 0d 0f 31 8b d0 c1 c2 0d 8b c1 59 5b c3 55 8b ec .......t.......Y[..1......1.......Y[.U..
02cb0618 51 53 8b 45 0c 8b 4d 14 0b c8 8b 4d 10 75 0b 8b 45 08 f7 e1 5b 59 5d c2 10 00 f7 e1 8b d8 8b 45 08 f7 65 14 03 d8 8b 45 QS.E..M....M.u..E...[Y]........E..e....E
02cb0640 08 f7 e1 03 d3 5b 59 5d c2 10 00 55 8b ec 53 8b 5d 0c 8b 03 8b 53 04 68 2d f4 51 58 68 2d 7f 95 4c 52 50 e8 ad ff ff ff .....[Y]...U..S.]....S.h-.QXh-..LRP.....
02cb0668 05 4f 81 67 f7 81 d2 7e 7b 05 14 89 03 89 53 04 8b 5d 08 52 50 ff 73 04 ff 33 e8 8e ff ff ff 5b 5d c2 08 00 55 8b ec 53 .O.g...~{.....S..].RP.s..3.....[]...U..S
02cb0690 8b 5d 08 e8 30 ff ff ff 89 03 89 53 04 e8 26 ff ff ff 89 43 08 89 53 0c e8 1b ff ff ff 89 43 10 89 53 14 e8 10 ff ff ff .]..0......S..&....C..S.......C..S......
02cb06b8 89 43 18 89 53 1c e8 05 ff ff ff 89 43 20 89 53 24 e8 fa fe ff ff 89 43 28 89 53 2c e8 ef fe ff ff 89 43 30 89 53 34 e8 .C..S.......C .S$......C(.S,......C0.S4.
02cb06e0 e4 fe ff ff 89 43 38 89 53 3c e8 d9 fe ff ff 89 43 40 89 53 44 e8 ce fe ff ff 89 43 48 89 53 4c e8 c3 fe ff ff 89 43 50 .....C8.S<......C@.SD......CH.SL......CP
02cb0708 89 53 54 e8 b8 fe ff ff 89 43 58 89 53 5c e8 ad fe ff ff 89 43 60 89 53 64 e8 a2 fe ff ff 89 43 68 89 53 6c e8 97 fe ff .ST......CX.S\......C`.Sd......Ch.Sl....
02cb0730 ff 89 43 70 89 53 74 e8 8c fe ff ff 89 43 78 81 e2 ff ff ff 00 89 53 7c b8 78 00 00 00 69 d2 05 84 08 08 42 f7 e2 8b 45 ..Cp.St......Cx.......S|.x...i.....B...E
02cb0758 0c 8b 00 89 04 1a 5b 5d c2 08 00 55 8b ec 56 57 8b 75 08 8b 7d 0c e8 55 fe ff ff 89 06 89 56 04 89 07 89 57 04 69 d2 05 ......[]...U..VW.u..}..U......V....W.i..
02cb0780 84 08 08 42 f7 e2 89 47 40 89 57 44 e8 37 fe ff ff 89 46 08 89 56 0c 89 47 08 89 57 0c 69 d2 05 84 08 08 42 f7 e2 89 47 ...B...G@.WD.7....F..V..G..W.i.....B...G
02cb07a8 48 89 57 4c e8 17 fe ff ff 89 46 10 89 56 14 89 47 10 89 57 14 69 d2 05 84 08 08 42 f7 e2 89 47 50 89 57 54 e8 f7 fd ff H.WL......F..V..G..W.i.....B...GP.WT....
02cb07d0 ff 89 46 18 89 56 1c 89 47 18 89 57 1c 69 d2 05 84 08 08 42 f7 e2 89 47 58 89 57 5c e8 d7 fd ff ff 89 46 20 89 56 24 89 ..F..V..G..W.i.....B...GX.W\......F .V$.
02cb07f8 47 20 89 57 24 69 d2 05 84 08 08 42 f7 e2 89 47 60 89 57 64 e8 b7 fd ff ff 89 46 28 89 56 2c 89 47 28 89 57 2c 69 d2 05 G .W$i.....B...G`.Wd......F(.V,.G(.W,i..
02cb0820 84 08 08 42 f7 e2 89 47 68 89 57 6c e8 97 fd ff ff 89 46 30 89 56 34 89 47 30 89 57 34 69 d2 05 84 08 08 42 f7 e2 89 47 ...B...Gh.Wl......F0.V4.G0.W4i.....B...G
02cb0848 70 89 57 74 e8 77 fd ff ff 89 46 38 89 56 3c 89 47 38 89 57 3c 69 d2 05 84 08 08 42 f7 e2 89 47 78 89 57 7c 5f 5e 5d c2 p.Wt.w....F8.V<.G8.W<i.....B...Gx.W|_^].
02cb0870 08 00 00 00
what is it?
02cb05c8 53 push ebx
02cb05c9 51 push ecx
02cb05ca 6a01 push 1
02cb05cc 58 pop eax
02cb05cd 0fa2 cpuid
02cb05cf f7c100000040 test ecx,40000000h
02cb05d5 0f95c0 setne al
02cb05d8 84c0 test al,al
02cb05da 7409 je 02cb05e5
02cb05dc 0fc7f0 rdrand eax
02cb05df 0fc7f2 rdrand edx
02cb05e2 59 pop ecx
02cb05e3 5b pop ebx
02cb05e4 c3 ret
02cb05e5 6a07 push 7
02cb05e7 58 pop eax
02cb05e8 33c9 xor ecx,ecx
02cb05ea 0fa2 cpuid
02cb05ec f7c300000400 test ebx,40000h
02cb05f2 0f95c0 setne al
02cb05f5 84c0 test al,al
02cb05f7 7409 je 02cb0602
02cb05f9 0fc7f8 rdseed eax
02cb05fc 0fc7fa rdseed edx
02cb05ff 59 pop ecx
02cb0600 5b pop ebx
02cb0601 c3 ret
02cb0602 0f31 rdtsc
02cb0604 8bc8 mov ecx,eax
02cb0606 c1c90d ror ecx,0Dh
02cb0609 0f31 rdtsc
02cb060b 8bd0 mov edx,eax
02cb060d c1c20d rol edx,0Dh
02cb0610 8bc1 mov eax,ecx
02cb0612 59 pop ecx
02cb0613 5b pop ebx
02cb0614 c3 ret
02cb0615 55 push ebp
02cb0616 8bec mov ebp,esp
02cb0618 51 push ecx
02cb0619 53 push ebx
02cb061a 8b450c mov eax,dword ptr [ebp+0Ch]
02cb061d 8b4d14 mov ecx,dword ptr [ebp+14h]
02cb0620 0bc8 or ecx,eax
02cb0622 8b4d10 mov ecx,dword ptr [ebp+10h]
02cb0625 750b jne 02cb0632
02cb0627 8b4508 mov eax,dword ptr [ebp+8]
02cb062a f7e1 mul eax,ecx
02cb062c 5b pop ebx
02cb062d 59 pop ecx
02cb062e 5d pop ebp
02cb062f c21000 ret 10h
02cb0632 f7e1 mul eax,ecx
02cb0634 8bd8 mov ebx,eax
02cb0636 8b4508 mov eax,dword ptr [ebp+8]
02cb0639 f76514 mul eax,dword ptr [ebp+14h]
02cb063c 03d8 add ebx,eax
02cb063e 8b4508 mov eax,dword ptr [ebp+8]
02cb0641 f7e1 mul eax,ecx
02cb0643 03d3 add edx,ebx
02cb0645 5b pop ebx
02cb0646 59 pop ecx
02cb0647 5d pop ebp
02cb0648 c21000 ret 10h
+83
02cb064b 55 push ebp
02cb064c 8bec mov ebp,esp
02cb064e 53 push ebx
02cb064f 8b5d0c mov ebx,dword ptr [ebp+0Ch]
02cb0652 8b03 mov eax,dword ptr [ebx]
02cb0654 8b5304 mov edx,dword ptr [ebx+4]
02cb0657 682df45158 push 5851F42Dh
02cb065c 682d7f954c push 4C957F2Dh
02cb0661 52 push edx
02cb0662 50 push eax
02cb0663 e8adffffff call 02cb0615
02cb0668 054f8167f7 add eax,0F767814Fh
02cb066d 81d27e7b0514 adc edx,14057B7Eh
02cb0673 8903 mov dword ptr [ebx],eax
02cb0675 895304 mov dword ptr [ebx+4],edx
02cb0678 8b5d08 mov ebx,dword ptr [ebp+8]
02cb067b 52 push edx
02cb067c 50 push eax
02cb067d ff7304 push dword ptr [ebx+4]
02cb0680 ff33 push dword ptr [ebx]
02cb0682 e88effffff call 02cb0615
02cb0687 5b pop ebx
02cb0688 5d pop ebp
02cb0689 c20800 ret 8
+41
02cb068c 55 push ebp
02cb068d 8bec mov ebp,esp
02cb068f 53 push ebx
02cb0690 8b5d08 mov ebx,dword ptr [ebp+8]
02cb0693 e830ffffff call 02cb05c8
02cb0698 8903 mov dword ptr [ebx],eax
02cb069a 895304 mov dword ptr [ebx+4],edx
02cb069d e826ffffff call 02cb05c8
02cb06a2 894308 mov dword ptr [ebx+8],eax
02cb06a5 89530c mov dword ptr [ebx+0Ch],edx
02cb06a8 e81bffffff call 02cb05c8
02cb06ad 894310 mov dword ptr [ebx+10h],eax
02cb06b0 895314 mov dword ptr [ebx+14h],edx
02cb06b3 e810ffffff call 02cb05c8
02cb06b8 894318 mov dword ptr [ebx+18h],eax
02cb06bb 89531c mov dword ptr [ebx+1Ch],edx
02cb06be e805ffffff call 02cb05c8
02cb06c3 894320 mov dword ptr [ebx+20h],eax
02cb06c6 895324 mov dword ptr [ebx+24h],edx
02cb06c9 e8fafeffff call 02cb05c8
02cb06ce 894328 mov dword ptr [ebx+28h],eax
02cb06d1 89532c mov dword ptr [ebx+2Ch],edx
02cb06d4 e8effeffff call 02cb05c8
02cb06d9 894330 mov dword ptr [ebx+30h],eax
02cb06dc 895334 mov dword ptr [ebx+34h],edx
02cb06df e8e4feffff call 02cb05c8
02cb06e4 894338 mov dword ptr [ebx+38h],eax
02cb06e7 89533c mov dword ptr [ebx+3Ch],edx
02cb06ea e8d9feffff call 02cb05c8
02cb06ef 894340 mov dword ptr [ebx+40h],eax
02cb06f2 895344 mov dword ptr [ebx+44h],edx
02cb06f5 e8cefeffff call 02cb05c8
02cb06fa 894348 mov dword ptr [ebx+48h],eax
02cb06fd 89534c mov dword ptr [ebx+4Ch],edx
02cb0700 e8c3feffff call 02cb05c8
02cb0705 894350 mov dword ptr [ebx+50h],eax
02cb0708 895354 mov dword ptr [ebx+54h],edx
02cb070b e8b8feffff call 02cb05c8
02cb0710 894358 mov dword ptr [ebx+58h],eax
02cb0713 89535c mov dword ptr [ebx+5Ch],edx
02cb0716 e8adfeffff call 02cb05c8
02cb071b 894360 mov dword ptr [ebx+60h],eax
02cb071e 895364 mov dword ptr [ebx+64h],edx
02cb0721 e8a2feffff call 02cb05c8
02cb0726 894368 mov dword ptr [ebx+68h],eax
02cb0729 89536c mov dword ptr [ebx+6Ch],edx
02cb072c e897feffff call 02cb05c8
02cb0731 894370 mov dword ptr [ebx+70h],eax
02cb0734 895374 mov dword ptr [ebx+74h],edx
02cb0737 e88cfeffff call 02cb05c8
02cb073c 894378 mov dword ptr [ebx+78h],eax
02cb073f 81e2ffffff00 and edx,0FFFFFFh
02cb0745 89537c mov dword ptr [ebx+7Ch],edx
02cb0748 b878000000 mov eax,78h
02cb074d 69d205840808 imul edx,edx,8088405h
02cb0753 42 inc edx
02cb0754 f7e2 mul eax,edx
02cb0756 8b450c mov eax,dword ptr [ebp+0Ch]
02cb0759 8b00 mov eax,dword ptr [eax]
02cb075b 89041a mov dword ptr [edx+ebx],eax
02cb075e 5b pop ebx
02cb075f 5d pop ebp
02cb0760 c20800 ret 8
+d7
02cb0763 55 push ebp
02cb0764 8bec mov ebp,esp
02cb0766 56 push esi
02cb0767 57 push edi
02cb0768 8b7508 mov esi,dword ptr [ebp+8]
02cb076b 8b7d0c mov edi,dword ptr [ebp+0Ch]
02cb076e e855feffff call 02cb05c8
02cb0773 8906 mov dword ptr [esi],eax
02cb0775 895604 mov dword ptr [esi+4],edx
02cb0778 8907 mov dword ptr [edi],eax
02cb077a 895704 mov dword ptr [edi+4],edx
02cb077d 69d205840808 imul edx,edx,8088405h
02cb0783 42 inc edx
02cb0784 f7e2 mul eax,edx
02cb0786 894740 mov dword ptr [edi+40h],eax
02cb0789 895744 mov dword ptr [edi+44h],edx
02cb078c e837feffff call 02cb05c8
02cb0791 894608 mov dword ptr [esi+8],eax
02cb0794 89560c mov dword ptr [esi+0Ch],edx
02cb0797 894708 mov dword ptr [edi+8],eax
02cb079a 89570c mov dword ptr [edi+0Ch],edx
02cb079d 69d205840808 imul edx,edx,8088405h
02cb07a3 42 inc edx
02cb07a4 f7e2 mul eax,edx
02cb07a6 894748 mov dword ptr [edi+48h],eax
02cb07a9 89574c mov dword ptr [edi+4Ch],edx
02cb07ac e817feffff call 02cb05c8
02cb07b1 894610 mov dword ptr [esi+10h],eax
02cb07b4 895614 mov dword ptr [esi+14h],edx
02cb07b7 894710 mov dword ptr [edi+10h],eax
02cb07ba 895714 mov dword ptr [edi+14h],edx
02cb07bd 69d205840808 imul edx,edx,8088405h
02cb07c3 42 inc edx
02cb07c4 f7e2 mul eax,edx
02cb07c6 894750 mov dword ptr [edi+50h],eax
02cb07c9 895754 mov dword ptr [edi+54h],edx
02cb07cc e8f7fdffff call 02cb05c8
02cb07d1 894618 mov dword ptr [esi+18h],eax
02cb07d4 89561c mov dword ptr [esi+1Ch],edx
02cb07d7 894718 mov dword ptr [edi+18h],eax
02cb07da 89571c mov dword ptr [edi+1Ch],edx
02cb07dd 69d205840808 imul edx,edx,8088405h
02cb07e3 42 inc edx
02cb07e4 f7e2 mul eax,edx
02cb07e6 894758 mov dword ptr [edi+58h],eax
02cb07e9 89575c mov dword ptr [edi+5Ch],edx
02cb07ec e8d7fdffff call 02cb05c8
02cb07f1 894620 mov dword ptr [esi+20h],eax
02cb07f4 895624 mov dword ptr [esi+24h],edx
02cb07f7 894720 mov dword ptr [edi+20h],eax
02cb07fa 895724 mov dword ptr [edi+24h],edx
02cb07fd 69d205840808 imul edx,edx,8088405h
02cb0803 42 inc edx
02cb0804 f7e2 mul eax,edx
02cb0806 894760 mov dword ptr [edi+60h],eax
02cb0809 895764 mov dword ptr [edi+64h],edx
02cb080c e8b7fdffff call 02cb05c8
02cb0811 894628 mov dword ptr [esi+28h],eax
02cb0814 89562c mov dword ptr [esi+2Ch],edx
02cb0817 894728 mov dword ptr [edi+28h],eax
02cb081a 89572c mov dword ptr [edi+2Ch],edx
02cb081d 69d205840808 imul edx,edx,8088405h
02cb0823 42 inc edx
02cb0824 f7e2 mul eax,edx
02cb0826 894768 mov dword ptr [edi+68h],eax
02cb0829 89576c mov dword ptr [edi+6Ch],edx
02cb082c e897fdffff call 02cb05c8
02cb0831 894630 mov dword ptr [esi+30h],eax
02cb0834 895634 mov dword ptr [esi+34h],edx
02cb0837 894730 mov dword ptr [edi+30h],eax
02cb083a 895734 mov dword ptr [edi+34h],edx
02cb083d 69d205840808 imul edx,edx,8088405h
02cb0843 42 inc edx
02cb0844 f7e2 mul eax,edx
02cb0846 894770 mov dword ptr [edi+70h],eax
02cb0849 895774 mov dword ptr [edi+74h],edx
02cb084c e877fdffff call 02cb05c8
02cb0851 894638 mov dword ptr [esi+38h],eax
02cb0854 89563c mov dword ptr [esi+3Ch],edx
02cb0857 894738 mov dword ptr [edi+38h],eax
02cb085a 89573c mov dword ptr [edi+3Ch],edx
02cb085d 69d205840808 imul edx,edx,8088405h
02cb0863 42 inc edx
02cb0864 f7e2 mul eax,edx
02cb0866 894778 mov dword ptr [edi+78h],eax
02cb0869 89577c mov dword ptr [edi+7Ch],edx
02cb086c 5f pop edi
02cb086d 5e pop esi
02cb086e 5d pop ebp
02cb086f c20800 ret 8
where is it?
.text:008B76F6 8D B6 83 00 00 00 lea esi, [esi+83h]
.text:008B76FC FF 75 0C push [ebp+pRtlAllocateHeap]
.text:008B76FF FF 75 08 push [ebp+arg_0]
.text:008B7702 56 push esi
.text:008B7703 E8 4C 00 00 00 call CreateJumpGateTo
.text:008B7708 A3 9C 51 8C 00 mov crypt_alg_83, eax
Строки шифрованы но ничего критичного.
Вот скрипт дешифровки, там шифров много но вы и без меня скриптов наделаете. Писать скрипты для иды не умею поэтому просто питонил.
Код:
Crypted sample
.text:008A5CC8 mov dword ptr [ebx], 0B7D64064h
.text:008A5CCE mov dword ptr [ebx+4], 0B7984016h
.text:008A5CD5 mov dword ptr [ebx+8], 0B7904054h
.text:008A5CDC mov dword ptr [ebx+0Ch], 0B7FC4038h
.text:008A5CE3 push 4
.text:008A5CE5 push ebx
.text:008A5CE6 call sub_8A1250
Decryptor
def decrypt_00(data: str) -> None:
dwords = list()
dlines = data.splitlines()
for ln in dlines:
ln_parts = ln.split(' ')
try:
if ln_parts and ln_parts[-1][-1] == 'h':
dd = ln_parts[-1][:-1]
dd = int(dd, 16)
dwords.append(dd)
except Exception as e:
pass
if dwords:
key = 0x4803BFC7
for idd in range(len(dwords)):
dwords[idd] ^= key
dwords[idd] = ~dwords[idd]
dwords[idd] &= 0xfffffff
dd = dwords[idd]
b = dd.to_bytes(4, byteorder="little", signed=True)
dwords[idd] = int.from_bytes(b, byteorder="little", signed=False)
# decimal
print("Decimal dwords:")
print(dwords)
print("Hex dwords:")
hdwords = list()
for dd in dwords:
hdwords.append(hex(dd))
print(hdwords)
print("Bytes:")
bdwords = b''
for dd in dwords:
bdwords += dd.to_bytes(4, byteorder="little", signed=False)
print(bdwords)
print("Bytes without zeros:")
bdwords = b''
for dd in dwords:
bdwords += dd.to_bytes(4, byteorder="little", signed=False)
bdwords = bdwords.replace(b'\x00', b'')
print(bdwords)
def do_decrypt() -> None:
data = """
.text:008A5CC8 mov dword ptr [ebx], 0B7D64064h
.text:008A5CCE mov dword ptr [ebx+4], 0B7984016h
.text:008A5CD5 mov dword ptr [ebx+8], 0B7904054h
.text:008A5CDC mov dword ptr [ebx+0Ch], 0B7FC4038h
"""
decrypt_00(data)
exit(0)
Output
Decimal dwords:
[2752604, 6553646, 7077996, 0]
Hex dwords:
['0x2a005c', '0x64002e', '0x6c006c', '0x0']
Bytes:
b'\\\x00*\x00.\x00d\x00l\x00l\x00\x00\x00\x00\x00'
Bytes without zeros:
b'\\*.dll'
В архиве оригинальный экзешник и с востановленными импотрами, на точке входа 0xcc.
По факту импорты не востановлены а созданы, но это детали.
Если кто напишет скрипты для иды как там все строки расшифровать будет круто и респектабельно.
Да ида будет вонять на импорты но забейте, для реверса файлы годный.