今天帮朋友脱一个DLL,是Upack 0.3.9 beta2s -> Dwing的壳,用PEID看的是这个壳
找了找相关资料,按资料的思路走
25012CDE > 60 pushad ;这里F8走下去
25012CDF E8 09000000 call 25012CED ;这里F7
25012CE4 0000 add byte ptr [eax], al
然后一路F8来到了这
25012EED 03F8 add edi, eax
25012EEF 0117 add dword ptr [edi], edx
25012EF1 ^ E2 F3 loopd short 25012EE6
25012EF3 61 popad ; F8到这里
25012EF4 - E9 D12FFFFF jmp 25005ECA ;这里应该就是跳向 OEP的吧
25012EF9 2C 01 sub al, 1
25012EFB 72 08 jb short 25012F05
25012EFD 74 0A je short 25012F09
25012EFF C1E0 08 shl eax, 8
25012F02 AC lods byte ptr [esi]
25012F03 ^ EB E8 jmp short 25012EED
25012F05 66:AD lods word ptr [esi]
25012F07 ^ EB E4 jmp short 25012EED
25012F09 AD lods dword ptr [esi]
25012F0A ^ EB E1 jmp short 25012EED
25012F0C 50 push eax
25012F0D 8B45 08 mov eax, dword ptr [ebp+8]
这里印象挺深刻的 是连续三个JMP
25012EF4 - E9 D12FFFFF jmp 25005ECA ;然后F8执行这句---------------------
直接来到了这里
25005ECA /. 55 push ebp ;我自己得出的结果这里应该就是OEP了
25005ECB |. 8BEC mov ebp, esp
25005ECD |. 53 push ebx
25005ECE |. 8B5D 08 mov ebx, dword ptr [ebp+8]
25005ED1 |. 56 push esi
25005ED2 |. 8B75 0C mov esi, dword ptr [ebp+C]
25005ED5 |. 57 push edi
25005ED6 |. 8B7D 10 mov edi, dword ptr [ebp+10]
25005ED9 |. 85F6 test esi, esi
25005EDB |. 75 09 jnz short 25005EE6
25005EDD |. 833D 3C8A0025>cmp dword ptr [25008A3C], 0
25005EE4 |. EB 26 jmp short 25005F0C
25005EE6 |> 83FE 01 cmp esi, 1
25005EE9 |. 74 05 je short 25005EF0
25005EEB |. 83FE 02 cmp esi, 2
然后直接在25005ECA /. 55 push ebp 右键选dump debugged process,
跳出框 点DUMP 保存文件
再用PEID查是
Microsoft Visual C++ 6.0 DLL
普通 深度 核心扫描都是Microsoft Visual C++ 6.0 DLL
但是不明白为什么外部扫描会是这样Armadillo v1.xx - v2.xx *
是不是还有一层壳
还有脱壳后的DLL文件虽然能运行 但是缺少了一些功能,是不是我哪里做的不对?
这个文件困惑了我两天了 真不不知道为什么了
还有一个问题,为什么我用OD加载DLL后 F8步进的情况下 有时会死机(可以说是直接重启)
这个是这个文件的连接:
f34K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0S2*7j5X3!0^5i4K6u0W2j5$3&6Q4x3V1k6V1L8r3I4Q4x3V1j5I4i4K6u0W2M7X3q4J5
如果哪个大大能抽出少许时间的话 请帮忙看一下
真的很多地方搞不明白
[培训]科锐逆向工程师培训第53期2025年7月8日开班!