zoukankan      html  css  js  c++  java
  • VMProtect使用小计【二】 – 加壳查看

    Release

    我这里使用的是Release的版本,Debug的版本分析没有多少的必要,因为程序发布过之后就是Release的,我们先看一下这个文件
    VMProtect使用小计【二】

    原程序分析

    使用OD打开VMProtectDemo1.exe原版程序
    因为在我们的程序使用到了MessageBox,所以这里我们就下bp MessageBoxW断点。为什么是MessageBoxW这是因为我刚开始是用的VS2008生成的默认工程,默认工程是Unicode的程序,所以这里就断MessageBoxW
    VMProtect使用小计【二】

    运行程序

    使用F9运行程序,让程序跑起来,这时会断到我们的MessageBoxW的断点上,我们按Alt+F9返回到用户代码。

    013D1000 >/$ 68 B8213D01    PUSH OFFSET VMProtec.??_C@_0BH@NEBMIKLA@>;  ASCII "VMProtec Tag By Sollyu"
    013D1005  |. FF15 B0203D01  CALL DWORD PTR DS:[<&VMProtectSDK32.VMPr>;  VMProt_1.VMProtectBeginVirtualizationLockByKey
    013D100B  |. 6A 40          PUSH 40                                  ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
    013D100D  |. 68 D0213D01    PUSH OFFSET VMProtec.??_C@_1BE@GCDIBBA@?>; |Title = "By:Sollyu"
    013D1012  |. 68 E4213D01    PUSH OFFSET VMProtec.??_C@_1CA@BBLPMEIO@>; |Text = "VMProtect Test."
    013D1017  |. 6A 00          PUSH 0                                   ; |hOwner = NULL
    013D1019  |. FF15 A4203D01  CALL DWORD PTR DS:[<&USER32.MessageBoxW>>; MessageBoxW
    013D101F  |. FF15 AC203D01  CALL DWORD PTR DS:[<&VMProtectSDK32.VMPr>;  VMProt_1.VMProtectEnd

    可以很清除的看到我们的MessageBoxW
    VMProtect使用小计【二】

    保护程序分析

    使用OD分析

    原程序分析一样,下bp MessageBoxW断点,F9运行调试
    当执行到MessageBoxW的时候,我们可以发现完全不是我们想要的代码了,而且出现了错误调试。
    VMProtect使用小计【二】
    我们可以在VMProtect找到这段文本的说明,首先要开启专家模式
    VMProtect使用小计【二】
    可以看到这是在说文件损坏,禁止调试的一种
    VMProtect使用小计【二】

    IDA分析

    使用OD动态调试不行,我们在使用IDA看一下效果。这里是两个程序的对比图
    原程序
    VMProtect使用小计【二】
    保护程序
    VMProtect使用小计【二】
    可以看到,已经改的面目全非了。

  • 相关阅读:
    使用JdbcTemplate访问数据库
    解决为什么每次打开Eclipse新的workspace需要更新nexus-maven-repository-index问题
    java内存设置
    Eclipse如何解决启动慢
    eclipse的包的加减号展开方式
    maven总结5
    maven总结4
    maven总结3
    maven总结2
    maven总结1
  • 原文地址:https://www.cnblogs.com/vcerror/p/4289045.html
Copyright © 2011-2022 走看看