165722 发表于 2019-9-21 23:13

求个给加VMP壳打补丁的源码或方法

最进逆向的E盾+VMP的DLL 有二次验证 日了以后不能保存 。。。所以
问题来了
加VMP壳的DLL怎么打补丁呢
emmmmmm大佬们 救我

涛涛 发表于 2019-9-21 23:24


.版本 2

.DLL命令 GetModuleHandleA, 整数型, "kernel32.dll", "GetModuleHandleA", 公开, API取模块句柄
    .参数 a, 文本型

.版本 2

.局部变量 基址, 整数型
.局部变量 补丁地址, 整数型
.局部变量 偏移, 整数型

基址 = GetModuleHandleA (“dll名字”)
补丁地址 = 十六到十 (“补丁地址”) - 基址
补丁地址 = 基址 + 补丁地址
' ----------------------
' 写到内存 (补丁数据, 补丁地址, 字节集长度)
' ----------------------
' 这里就可以直接写补丁了
' 偏移是你的补丁地址减去基址就是你的补丁地址了

.子程序 十六到十, 整数型, 公开, 将十六进制转换成十进制(返回十进制文本)
.参数 十六进制文本, 文本型, , 待转换的十六进制文本
.参数 返回结果, 文本型, 参考 可空, 返回文本结果(如十进制数超出整数范围,可通过返回结果获得十进制文本)
.局部变量 中间文本, 文本型
.局部变量 结果, 长整数型
.局部变量 容器1, 整数型

返回结果 = “”
十六进制文本 = 到大写 (十六进制文本)
十六进制文本 = 子文本替换 (十六进制文本, “0X”, , , , 真)
.变量循环首 (1, 取文本长度 (十六进制文本), 1, 容器1)
    中间文本 = 取文本中间 (十六进制文本, 容器1, 1)
    结果 = (寻找文本 (“0123456789ABCDEF”, 中间文本, , 真) - 1) × 求次方 (16, 取文本长度 (十六进制文本) - 容器1) + 结果
.变量循环尾 ()
.如果真 (是否为空 (返回结果) = 假)
    返回结果 = 到文本 (结果)
.如果真结束
返回 (结果)

165722 发表于 2019-9-22 19:06

涛涛 发表于 2019-9-21 23:24
.版本 2

.DLL命令 GetModuleHandleA, 整数型, "kernel32.dll", "GetModuleHandleA", 公开, API取模块 ...

大佬 能给个源码吗 万分感谢

这不航郡么~ 发表于 2019-9-23 16:33

少直接要源码,路都是自己走出来的
ZwProtectVirtualMemory
页: [1]
查看完整版本: 求个给加VMP壳打补丁的源码或方法