用DiE 0.52 查壳显示“UPX <.modified.>”
OD加载后如下所示:
0048F1E0 > $ 60 pushad
0048F1E1 . BE 00B04600 mov esi, 0046B000
0048F1E6 . 8DBE 0060F9FF lea edi, [esi+FFF96000]
0048F1EC . 57 push edi
0048F1ED . 83CD FF or ebp, FFFFFFFF
0048F1F0 . E8 EB11F7FF call 004003E0
0048F1F5 .^ E2 E2 loopd short 0048F1D9
0048F1F7 .^ E2 F8 loopd short 0048F1F1
0048F1F9 . 74 34 je short 0048F22F
0048F1FB . FA cli
0048F1FC > 75 35 jnz short 0048F233
0048F1FE .^ 73 A9 jnb short 0048F1A9
0048F200 . 07 pop es
0048F201 .^ 75 F9 jnz short 0048F1FC
0048F203 . 6C ins byte ptr es:[edi], dx
0048F204 . F1 int1
在 0048F1F0 . E8 EB11F7FF call 004003E0
中F7跟进去显示:
004003E0 58 pop eax ; Be.0048F1F5
004003E1 89C3 mov ebx, eax
004003E3 83C0 0D add eax, 0D
004003E6 BA 729A7947 mov edx, 47799A72
004003EB B9 5C010000 mov ecx, 15C
004003F0 3116 xor [esi], edx
004003F2 3013 xor [ebx], dl
004003F4 43 inc ebx
004003F5 ^ E2 FB loopd short 004003F2
004003F7 FFE0 jmp eax
一直F8跟踪到如下:
0048F330 . 48 dec eax
0048F331 . F2:AE repne scas byte ptr es:[edi]
0048F333 . 55 push ebp
0048F334 . FF96 68110900 call [esi+91168] ; kernel32.GetProcAddress
0048F33A . 09C0 or eax, eax
0048F33C . 74 07 je short 0048F345
0048F33E . 8903 mov [ebx], eax
0048F340 . 83C3 04 add ebx, 4
0048F343 .^ EB D8 jmp short 0048F31D
0048F345 > FF96 6C110900 call [esi+9116C]
0048F34B > 61 popad
0048F34C .- E9 735DF7FF jmp 004050C4
0048F351 00 db 00
0048F352 00 db 00
看到明显的:0048F34B > 61 popad
0048F34C .- E9 735DF7FF jmp 004050C4
直接F7跟进去:
004050C4 68 A0554000 push 004055A0 ;ASCII "VB5!6&vb6chs.dll"
004050C9 E8 F0FFFFFF call 004050BE ; jmp 到 VBVM60.ThunRTMain
004050CE 0000 add [eax], al
004050D0 48 dec eax
在004050C4 68 A0554000 push 004055A0 ;ASCII "VB5!6&vb6chs.dll"进行脱壳,程序可以正常运行,但是好像总感觉不对,请老大们指点
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课