吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 228|回复: 8
收起左侧

[求助] .NET+VMP壳全保护首次逆向

[复制链接]
qcdwb2026 发表于 2025-12-21 10:51
本帖最后由 qcdwb2026 于 2025-12-21 11:02 编辑

直接上图查壳:

查壳

查壳
可见VMP壳,dnSpy里啥也没有...

反调试

反调试
反调试。无奈水平不够正面突破不了,只能想其它办法。
上Fiddler抓包看一下: 明文key和机器码.png 可以看到明文的key和机器码被发送了,

host: host.png
然后关键的JSON: JSON.png
让chatgpt帮忙看看: base64.png
Base64的密文,那肯定要调用相关的Base64函数解密,直接上CE:

ce查找Base64.png
F5断下后单步,开始的时候我想在初始化的时候就要断下特意写了一个CE的lua脚本把代码贴出来
[Lua] 纯文本查看 复制代码
if _G.Base64BreakOnce then return end
_G.Base64BreakOnce = true

print("[/size][/font][font=微软雅黑][size=5] Base64 immediate break script loaded")

--------------------------------------------------------
-- ★★★ 修改这里:call 指令地址 ★★★
--------------------------------------------------------
local CALL_ADDR = 0x6BE573AF --这里的地址先用CE看一下就是FromBase64CharPtr的地址


-- ← CPU 窗口里的 call 指令地址

--------------------------------------------------------
-- 等待 call 地址可访问,然后下执行断点
--------------------------------------------------------
local timer = createTimer(nil)
timer.Interval = 5

timer.OnTimer = function(t)
    if readBytes(CALL_ADDR, 1, false) then
        debug_setBreakpoint(CALL_ADDR) 
        print(string.format(
            "[/size][/font][font=微软雅黑][size=5] Breakpoint set @ call FromBase64CharPtr (0x%X)",
            CALL_ADDR
        ))
        t.destroy()
    end
end

这样在程序初始化到FromBase64CharPtr 的时候就能直接断下。
然后我们单步的时候追踪一下每个函数的返回值:
追踪EAX.png 点一下Follow in hexview when stepping 这样可以直接在十六进制窗口里查看EAX的情况
一路F8后到达解密的地方:
解密CALL.png 可以看到解密出来的JSON格式大体如下:{"code":"0","expireDate":"2026-XX-XX","classes":"XX","queryTime":"1765987667798","maxAllow":"642"}
我们直接在CE里把2026的0改成2到期时间就变成了2226,因为自己也在用它这个辅助所以有些细节不方便贴出来。最后效果是这样:
效果展示.png
最后是求助环节希望各路大神给解惑:因为自己对.NET了解不多,所以在Inlinehook这个解密Call的时候遇到了很多困难一直没有成功,问了下chatgpt大致意思是.NET有JIT编译导致内存地址每次都不一样,编译时机也不同很难用特征码定位。希望各路大大们支招。然后这个软件后面还有很多校验,如果用一个无效key输入的话在构造JSON环节后程序直接会崩溃,自己还在研究,能研究出个眉目来再做一期过校验吧!期待ing......



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

EnterpriseSolu 发表于 2025-12-21 20:40
够厉害了,这都分析出来了  de4dot 应该也解不出来
 楼主| qcdwb2026 发表于 2025-12-21 21:05
EnterpriseSolu 发表于 2025-12-21 20:40
够厉害了,这都分析出来了  de4dot 应该也解不出来

用CE还是比较好逆的,程序有反调试,要开启VEH模式,开启状态下偶尔会被检测到。
SoftCracker 发表于 2025-12-22 01:51
vb56390 发表于 2025-12-22 08:30
目测并不是VMP.NET的壳
 楼主| qcdwb2026 发表于 2025-12-23 02:09
vb56390 发表于 2025-12-22 08:30
目测并不是VMP.NET的壳

怎么看出来的不是?
qwe1511909 发表于 2025-12-23 17:12
vb56390 发表于 2025-12-22 08:30
目测并不是VMP.NET的壳

是net的话用ExtremeDumper就可以了可能不是.NET Framework
 楼主| qcdwb2026 发表于 2025-12-24 08:54
qwe1511909 发表于 2025-12-23 17:12
是net的话用ExtremeDumper就可以了可能不是.NET Framework

我靠666啊,这工具直接就能脱壳了啊?我试了下Dump出来直接没壳了?
qwe1511909 发表于 2025-12-25 11:18
qcdwb2026 发表于 2025-12-24 08:54
我靠666啊,这工具直接就能脱壳了啊?我试了下Dump出来直接没壳了?

加壳的问题吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-12-25 14:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表