飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 12971|回复: 8

[讨论中..] VMProtectIsValidImageCRC()这个内存校验该怎么过

[复制链接]
  • TA的每日心情
    无聊
    2019-6-9 11:40
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2015-1-29 10:19:57 | 显示全部楼层 |阅读模式
    本帖最后由 sevp 于 2015-1-29 12:21 编辑

    对一个程序打补丁vmp的壳子
    如果去挂钩某一个地址 然后jmp走,修改寄存器的值 ,修改完之后再跳回来还原hook,这样走一回就崩了

    但是使用硬件断点断下,手动修改寄存器的值 就不会崩溃
    猜测是使用了VMProtectIsValidImageCRC()校验内存

    请问下各位大大,这个校验怎么处理
    http://www.unpack.cn/thread-71059-1-1.html找到了一片文章 但是视频链接失效了。。。


    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2015-1-29 11:06:25 | 显示全部楼层
    搞复杂了吧?既然硬件断点能修改不挂,那么就编程写个dll eip劫持
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2019-6-9 11:40
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2015-1-29 11:20:58 | 显示全部楼层
    本帖最后由 sevp 于 2015-1-29 11:28 编辑
    飘云 发表于 2015-1-29 11:06
    搞复杂了吧?既然硬件断点能修改不挂,那么就编程写个dll eip劫持

    不知道大大所说的eip劫持是不是我所说的第一个patch代码段某处, jmp走修改寄存器

    我是通过dll劫持实现的,修改完之后,把代码段某处又还原回来了,但后面还是程序退出了

    硬件断点补丁去修改也是可以的,但是目标程序是个dll(加了vmp),调用者exe如果是se加壳的话,我自己的veh捕获硬件断点异常处理函数会失效,所以还是想通过监视这个dll的解码并且patch来实现

    点评

    hook api了么? 既然都用到VEH了,还硬patch干嘛呢?  详情 回复 发表于 2015-1-29 11:56
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2015-1-29 11:56:17 | 显示全部楼层
    sevp 发表于 2015-1-29 11:20
    不知道大大所说的eip劫持是不是我所说的第一个patch代码段某处, jmp走修改寄存器

    我是通过dll劫持实现 ...

    hook api了么? 既然都用到VEH了,还硬patch干嘛呢?
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2019-6-9 11:40
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2015-1-29 12:16:42 | 显示全部楼层
    飘云 发表于 2015-1-29 11:56
    hook api了么? 既然都用到VEH了,还硬patch干嘛呢?

    没hook api。我就在某个地址下了硬断,然后自己的veh函数中处理,这样是可行的,不需要监视解码,执行到这里就段下来跳到我自己的veh中,我在这里面修改寄存器的值
    但是上面那种方法,如果是使用了se的壳的话,处理会失败,不知道se对硬断方面做了什么手脚

    所以还是想使用监视解码的方法,在壳段我找到了解码函数,首先挂这个解码函数等待解码完毕,这里一切正常,不会退出
    等待解码完毕后对 解码后的text段的某个地址hook,hook完了之后再还原回去,程序就退出了。


    点评

    你修改了代码被CRC了,肯定退出。 SE 是可以VEH的。你hook一个合适的API,待代码段解密,然后再VEH,  详情 回复 发表于 2015-1-29 12:25
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2015-1-29 12:25:30 | 显示全部楼层
    sevp 发表于 2015-1-29 12:16
    没hook api。我就在某个地址下了硬断,然后自己的veh函数中处理,这样是可行的,不需要监视解码,执行到 ...

    你修改了代码被CRC了,肯定退出。
    SE 是可以VEH的。你hook一个合适的API,待代码段解密,然后再VEH,
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2019-6-9 11:40
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2015-1-29 15:04:26 | 显示全部楼层
    飘云 发表于 2015-1-29 12:25
    你修改了代码被CRC了,肯定退出。
    SE 是可以VEH的。你hook一个合适的API,待代码段解密,然后再VEH,

    非常感谢,按照你说的方法已解决

    同时想再问个问题,,设置硬断的时候除了SetThreadContext还有什么别的方法没,用SetThreadContext每次都要先把主线程挂起
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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