首页
社区
课程
招聘
[求助]哪位大侠能帮忙看一下这个期货软件是什么壳?感谢
发表于: 2016-2-15 15:04 8041

[求助]哪位大侠能帮忙看一下这个期货软件是什么壳?感谢

2016-2-15 15:04
8041
好久没研究过逆向,用PEID误别不出壳,现在想手动脱壳,但搞不明白这是什么壳,哪位能帮忙识别一下不,好在论坛找点教程,感谢!

软件地址:
http://220.178.9.30:8080/hq/%E5%BE%BD%E5%95%865.2.1020151117.exe

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 2445
活跃值: (1452)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
Themida
2016-2-16 14:56
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
感谢!!!
2016-2-16 14:58
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
想继续问一下,论坛是否可以请求有偿脱壳。

太久没用过汇编和OLLYICE,快捷键都忘记差不多了,

这个软件是免费的,帮朋友在上面写个小助手,方便快速下单平单,有些确认对话框要去掉。所以需要脱壳,适当改几行汇编。

如果有人有意向收费脱壳,请站内短信。如果违规,麻烦版主删除回复。

壳信息:

[!] Themida v2.0.1.0 - v2.1.2.0 (or newer) detected !
2016-2-16 17:25
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
个人信息中更新了QQ号。谢谢!
2016-2-16 17:28
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
直接HOOK 脱壳改多麻烦
2016-2-17 00:59
0
雪    币: 225
活跃值: (328)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Themida 的壳,脱了也没意义,因为有虚拟机
2016-2-17 08:43
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
对,多谢提醒!

这也是一个办法。程序运行起来后直接对内存相关的地方改写一下。
2016-2-17 08:48
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
如果要修改的地方没有变形,可以直接修改文件,有一定的意义。虚拟机,只是将部分代码虚拟化了吧?
2016-2-17 08:49
0
雪    币: 627
活跃值: (663)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
10
壳代码后的程序入口:
[FONT="Courier"]00401000  /EB 10               JMP     SHORT 00401012           ; OEP / Near OEP
00401002  |66:623A             BOUND   DI, [EDX]                ; "fb:C++HOOK", 0x90
00401005  |43                  INC     EBX
00401006  |2B2B                SUB     EBP, [EBX]
00401008  |48                  DEC     EAX
00401009  |4F                  DEC     EDI
0040100A  |4F                  DEC     EDI
0040100B  |4B                  DEC     EBX
0040100C  |90                  NOP
0040100D  |E9 70E97500         JMP     00B5F982
00401012  \A1 63E97500         MOV     EAX, [0x75E963]
00401017   C1E0 02             SHL     EAX, 0x2
0040101A   A3 67E97500         MOV     [0x75E967], EAX
0040101F   52                  PUSH    EDX
00401020   6A 00               PUSH    0x0
00401022   E8 67C33500         CALL    0075D38E                 ; JMP to kernel32.GetModuleHandleA
00401027   8BD0                MOV     EDX, EAX
00401029   E8 CE241700         CALL    005734FC
0040102E   5A                  POP     EDX
0040102F   E8 CECB3500         CALL    0075DC02                 ; JMP to OFFSET Cc3250mt.___CRTL_MEM_UseBorMM
00401034   E8 07251700         CALL    00573540
00401039   6A 00               PUSH    0x0
0040103B   E8 6C261700         CALL    005736AC
00401040   59                  POP     ECX
00401041   68 0CE97500         PUSH    0075E90C
00401046   6A 00               PUSH    0x0
00401048   E8 41C33500         CALL    0075D38E                 ; JMP to kernel32.GetModuleHandleA
0040104D   A3 6BE97500         MOV     [0x75E96B], EAX
00401052   6A 00               PUSH    0x0
00401054   E9 75CC3500         JMP     0075DCCE                 ; JMP to OFFSET Cc3250mt.__startup
00401059 > E9 9A261700         JMP     005736F8
0040105E   33C0                XOR     EAX, EAX
00401060   A0 55E97500         MOV     AL, [0x75E955]
00401065   C3                  RETN
00401066   A1 6BE97500         MOV     EAX, [0x75E96B]
0040106B   C3                  RETN
0040106C   60                  PUSHAD
0040106D   BB 0050B0BC         MOV     EBX, 0xBCB05000
00401072   53                  PUSH    EBX
00401073   68 AD0B0000         PUSH    0xBAD
00401078   C3                  RETN
00401079   B9 9C000000         MOV     ECX, 0x9C
0040107E   0BC9                OR      ECX, ECX
00401080   74 4D               JE      SHORT 004010CF
00401082   833D 63E97500 00    CMP     DWORD PTR [0x75E963], 0x0
00401089   73 0A               JNB     SHORT 00401095
0040108B   B8 FE000000         MOV     EAX, 0xFE
00401090   E8 D7FFFFFF         CALL    0040106C
00401095   B9 9C000000         MOV     ECX, 0x9C
0040109A   51                  PUSH    ECX
0040109B   6A 08               PUSH    0x8
0040109D   E8 10C33500         CALL    0075D3B2                 ; JMP to kernel32.GetProcessHeap
004010A2   50                  PUSH    EAX
004010A3   E8 52C33500         CALL    0075D3FA                 ; JMP to ntdll.RtlAllocateHeap
004010A8   0BC0                OR      EAX, EAX
004010AA   75 0A               JNZ     SHORT 004010B6
004010AC   B8 FD000000         MOV     EAX, 0xFD
004010B1   E8 B6FFFFFF         CALL    0040106C
004010B6   50                  PUSH    EAX
004010B7   50                  PUSH    EAX
004010B8   FF35 63E97500       PUSH    DWORD PTR [0x75E963]
004010BE   E8 63CB3500         CALL    0075DC26                 ; JMP to OFFSET Cc3250mt.___CRTL_TLS_SetValue
004010C3   FF35 63E97500       PUSH    DWORD PTR [0x75E963]
004010C9   E8 52CB3500         CALL    0075DC20                 ; JMP to OFFSET Cc3250mt.___CRTL_TLS_InitThread
004010CE   5F                  POP     EDI
004010CF   C3                  RETN
004010D0   B9 9C000000         MOV     ECX, 0x9C
004010D5   0BC9                OR      ECX, ECX
004010D7   74 19               JE      SHORT 004010F2
004010D9   E8 2ACB3500         CALL    0075DC08                 ; JMP to OFFSET Cc3250mt.___CRTL_TLS_Alloc
004010DE   A3 63E97500         MOV     [0x75E963], EAX
004010E3   83F8 00             CMP     EAX, 0x0
004010E6   73 91               JNB     SHORT 00401079
004010E8   B8 FC000000         MOV     EAX, 0xFC
004010ED   E8 7AFFFFFF         CALL    0040106C
004010F2   C3                  RETN
004010F3   833D 63E97500 00    CMP     DWORD PTR [0x75E963], 0x0
004010FA   72 28               JB      SHORT 00401124
004010FC   FF35 63E97500       PUSH    DWORD PTR [0x75E963]
00401102   E8 13CB3500         CALL    0075DC1A                 ; JMP to OFFSET Cc3250mt.___CRTL_TLS_GetValue
00401107   0BC0                OR      EAX, EAX
00401109   74 19               JE      SHORT 00401124
0040110B   50                  PUSH    EAX
0040110C   6A 08               PUSH    0x8
0040110E   E8 9FC23500         CALL    0075D3B2                 ; JMP to kernel32.GetProcessHeap
00401113   50                  PUSH    EAX
00401114   E8 E7C23500         CALL    0075D400                 ; JMP to ntdll.RtlFreeHeap
00401119   FF35 63E97500       PUSH    DWORD PTR [0x75E963]
0040111F   E8 EACA3500         CALL    0075DC0E                 ; JMP to OFFSET Cc3250mt.___CRTL_TLS_ExitThread
00401124   C3                  RETN
00401125   C3                  RETN
00401126   833D 63E97500 00    CMP     DWORD PTR [0x75E963], 0x0
0040112D   72 10               JB      SHORT 0040113F
0040112F   E8 BFFFFFFF         CALL    004010F3
00401134   FF35 63E97500       PUSH    DWORD PTR [0x75E963]
0040113A   E8 D5CA3500         CALL    0075DC14                 ; JMP to OFFSET Cc3250mt.___CRTL_TLS_Free
0040113F   C3                  RETN
00401140   A1 63E97500         MOV     EAX, [0x75E963]
00401145   64:67:8B16 2C00     MOV     EDX, FS:[0x2C]
0040114B   8B0482              MOV     EAX, [EDX+EAX*4]
0040114E   C3                  RETN[/FONT]

注意头部的TAG:"fb:C++HOOK",为Borland C++ 1999的签名。
阻止Themida的API保护后,导入函数被“还原”,否则没法看懂程序:
[FONT="Courier"]Target
======
"C:\徽商期货博易大师交易版\pobo5\system\pobo.exe"
CodeBase: 00401000
CodeSize: 004E3000
Align: ED060014
Shadow kernel32.dll at: 012E0000

Encrypted Imports at: 00C20F31
Imported Libraries:
        40000000 Vcl50
        402F0000 Vclx50
        50800000 bcbie50
        41000000 Borlndmm
        77DA0000 advapi32
        7C800000 kernel32
        77BD0000 version
        71A40000 wsock32
        77180000 comctl32
        76320000 comdlg32
        77EF0000 gdi32
        7D590000 shell32
        77D10000 user32
        76B10000 winmm
        76990000 ole32
        770F0000 oleaut32
        32500000 Cc3250mt
        03000000 dbghelp
        10000000 PBMsgBox
        762F0000 msimg32

0075BDB4   FF25 70058C00       JMP     NEAR [0x8C0570]         ; Vcl50.@System@initialization$qqrv
0075BDBA   FF25 74058C00       JMP     NEAR [0x8C0574]         ; Vcl50.@System@Finalization$qqrv
0075BDC0   FF25 78058C00       JMP     NEAR [0x8C0578]         ; Vcl50.@System@LoadResString$qqrp20System@TResStringRec
0075BDC6   FF25 7C058C00       JMP     NEAR [0x8C057C]         ; Vcl50.@System@UnregisterModule$qqrp17System@TLibModule
...
0075D2B0   FF25 A8218C00       JMP     NEAR [0x8C21A8]         ; advapi32.AdjustTokenPrivileges
0075D2B6   FF25 AC218C00       JMP     NEAR [0x8C21AC]         ; advapi32.LookupPrivilegeValueA
0075D2BC   FF25 B0218C00       JMP     NEAR [0x8C21B0]         ; advapi32.OpenProcessToken
0075D2C2   FF25 B4218C00       JMP     NEAR [0x8C21B4]         ; advapi32.RegCloseKey
0075D2C8   FF25 B8218C00       JMP     NEAR [0x8C21B8]         ; advapi32.RegOpenKeyExA
0075D2CE   FF25 BC218C00       JMP     NEAR [0x8C21BC]         ; advapi32.RegQueryValueExA
0075D2D4   FF25 50238C00       JMP     NEAR [0x8C2350]         ; kernel32.Beep
0075D2DA   FF25 54238C00       JMP     NEAR [0x8C2354]         ; kernel32.CloseHandle
0075D2E0   FF25 58238C00       JMP     NEAR [0x8C2358]         ; kernel32.CopyFileA
0075D2E6   FF25 5C238C00       JMP     NEAR [0x8C235C]         ; kernel32.CreateDirectoryA
0075D2EC   FF25 60238C00       JMP     NEAR [0x8C2360]         ; kernel32.CreateFileA
0075D2F2   FF25 64238C00       JMP     NEAR [0x8C2364]         ; kernel32.CreateFileMappingA
0075D2F8   FF25 68238C00       JMP     NEAR [0x8C2368]         ; kernel32.CreateProcessA
0075D2FE   FF25 6C238C00       JMP     NEAR [0x8C236C]         ; kernel32.CreateThread
0075D304   FF25 70238C00       JMP     NEAR [0x8C2370]         ; ntdll.RtlDeleteCriticalSection
0075D30A   FF25 74238C00       JMP     NEAR [0x8C2374]         ; kernel32.DeleteFileA
0075D310   FF25 78238C00       JMP     NEAR [0x8C2378]         ; ntdll.RtlEnterCriticalSection
0075D316   FF25 7C238C00       JMP     NEAR [0x8C237C]         ; kernel32.FileTimeToLocalFileTime
0075D31C   FF25 80238C00       JMP     NEAR [0x8C2380]         ; kernel32.FileTimeToSystemTime
0075D322   FF25 84238C00       JMP     NEAR [0x8C2384]         ; kernel32.FindClose
0075D328   FF25 88238C00       JMP     NEAR [0x8C2388]         ; kernel32.FindFirstFileA
0075D32E   FF25 8C238C00       JMP     NEAR [0x8C238C]         ; kernel32.FindNextFileA
0075D334   FF25 90238C00       JMP     NEAR [0x8C2390]         ; kernel32.FreeLibrary
0075D33A   FF25 94238C00       JMP     NEAR [0x8C2394]         ; kernel32.GetACP
0075D340   FF25 98238C00       JMP     NEAR [0x8C2398]         ; kernel32.GetCommandLineA
0075D346   FF25 9C238C00       JMP     NEAR [0x8C239C]         ; kernel32.GetCurrentDirectoryA
0075D34C   FF25 A0238C00       JMP     NEAR [0x8C23A0]         ; kernel32.GetCurrentProcess
0075D352   FF25 A4238C00       JMP     NEAR [0x8C23A4]         ; kernel32.GetCurrentProcessId
0075D358   FF25 A8238C00       JMP     NEAR [0x8C23A8]         ; kernel32.GetCurrentThreadId
0075D35E   FF25 AC238C00       JMP     NEAR [0x8C23AC]         ; kernel32.GetDiskFreeSpaceA
0075D364   FF25 B0238C00       JMP     NEAR [0x8C23B0]         ; kernel32.GetExitCodeThread
0075D36A   FF25 B4238C00       JMP     NEAR [0x8C23B4]         ; kernel32.GetFileSize
0075D370   FF25 B8238C00       JMP     NEAR [0x8C23B8]         ; kernel32.GetFileTime
0075D376   FF25 BC238C00       JMP     NEAR [0x8C23BC]         ; kernel32.GetFullPathNameA
0075D37C   FF25 C0238C00       JMP     NEAR [0x8C23C0]         ; ntdll.RtlGetLastWin32Error
0075D382   FF25 C4238C00       JMP     NEAR [0x8C23C4]         ; kernel32.GetLocalTime
0075D388   FF25 C8238C00       JMP     NEAR [0x8C23C8]         ; kernel32.GetModuleFileNameA
0075D38E   FF25 CC238C00       JMP     NEAR [0x8C23CC]         ; kernel32.GetModuleHandleA
0075D394   FF25 D0238C00       JMP     NEAR [0x8C23D0]         ; kernel32.GetPrivateProfileIntA
0075D39A   FF25 D4238C00       JMP     NEAR [0x8C23D4]         ; kernel32.GetPrivateProfileSectionA
0075D3A0   FF25 D8238C00       JMP     NEAR [0x8C23D8]         ; kernel32.GetPrivateProfileSectionNamesA
0075D3A6   FF25 DC238C00       JMP     NEAR [0x8C23DC]         ; kernel32.GetPrivateProfileStringA
0075D3AC   FF25 E0238C00       JMP     NEAR [0x8C23E0]         ; kernel32.GetProcAddress
0075D3B2   FF25 E4238C00       JMP     NEAR [0x8C23E4]         ; kernel32.GetProcessHeap
0075D3B8   FF25 E8238C00       JMP     NEAR [0x8C23E8]         ; kernel32.GetSystemInfo
0075D3BE   FF25 EC238C00       JMP     NEAR [0x8C23EC]         ; kernel32.GetSystemTime
...
0075DE6C   FF25 90318C00       JMP     NEAR [0x8C3190]         ; Cc3250mt._vsnprintf
0075DE72   FF25 94318C00       JMP     NEAR [0x8C3194]         ; Cc3250mt._wcscpy
0075DE78   FF25 A4318C00       JMP     NEAR [0x8C31A4]         ; dbghelp.MiniDumpWriteDump
0075DE7E   CC                  INT3
0075DE7F   CC                  INT3
0075DE80   FF25 B8318C00       JMP     NEAR [0x8C31B8]         ; PBMsgBox.PBMsgBoxEx_Initialize
0075DE86   FF25 BC318C00       JMP     NEAR [0x8C31BC]         ; PBMsgBox.PBMsgBoxEx_MessageBox
0075DE8C   FF25 CC318C00       JMP     NEAR [0x8C31CC]         ; msimg32.AlphaBlend
0075DE92   CC                  INT3
0075DE93   CC                  INT3
...
008C2E68  325012B0  OFFSET Cc3250mt.@$bdele$qpv
008C2E6C  325012C0  OFFSET Cc3250mt.@$bdla$qpv
008C2E70  325012E4  OFFSET Cc3250mt.@$bnew$qui
...
008C318C  325800CC  OFFSET Cc3250mt._time
008C3190  32565A30  OFFSET Cc3250mt._vsnprintf
008C3194  32550A4C  OFFSET Cc3250mt._wcscpy
008C3198  00000000
008C319C  00000000
008C31A0  5D424E5A
008C31A4  0305C560  dbghelp.MiniDumpWriteDump
008C31A8  00000000
008C31AC  00000000
008C31B0  00000000
008C31B4  381FE9D5
008C31B8  10009F30  PBMsgBox.PBMsgBoxEx_Initialize
008C31BC  1000A0B0  PBMsgBox.PBMsgBoxEx_MessageBox
008C31C0  00000000
008C31C4  00000000
008C31C8  5D5483C5
008C31CC  762F119B  msimg32.AlphaBlend
008C31D0  00000000
008C31D4  00000000[/FONT]

不懂Borland的VCL,所以就帮不上了。
2016-2-17 14:02
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
11
[QUOTE=MistHill;1415676]壳代码后的程序入口:
00401000  /EB 10               JMP     SHORT 00401012           ; OEP / Near OEP
00401002  |66:623A             BOUND   DI, [EDX]        ...[/QUOTE]

感谢帮忙分析!

我先不脱壳,因为要获取原程序中部分数据,本身就要往原程序中注入一个DLL,暂时先考虑内存修改。
目前部分功能验证已OK。
2016-2-17 14:09
0
雪    币: 2445
活跃值: (1452)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
发现我好久没上论坛了。
MistHill 依然犀利。
2016-3-1 15:15
0
雪    币: 238
活跃值: (49)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sbd
13
博易大师有不加壳的版本啊
2016-3-6 22:08
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
14
是的,以前有UPX加壳的,用UPX本身就可以脱的。
2016-3-7 08:37
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
rock Themida 的壳,脱了也没意义,因为有虚拟机
有虚拟机的脱壳都没用么
2018-3-21 02:41
0
雪    币: 433
活跃值: (1965)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
16
petersonhz 有虚拟机的脱壳都没用么[em_17]
有参数的话跟参数进虚拟机也没啥问题...
2018-5-13 09:55
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码