zoukankan      html  css  js  c++  java
  • 第5章:演示版保护技术——警告窗口

    将程序跑起来,多下断点,多看几遍代码流程。

    程序的主流程非常的简单,两个对话框的出现也只是在 DialogBoxParamA() 中,该函数的参数:

    查资料可知,第四个参数是指向对话框过程的指针,即回调函数,函数返回的消息与之对应会发生相应跳转调用相应的函数。

    可以看到,下方有一个 EndDialog(),即关闭该窗口,再往后又会调用 DialogBoxParamA() ,可知又会开启一个窗口,即第二个窗口。因此不能在此处修改这个函数。

    在该函数内部继续查看,下面这个函数会使用之前压入栈的回调函数作为参数:

    上一个窗口出现并点击确定之后,会执行到回调函数,并调用结束窗口函数,然后调用 DialogBoxParamA() 函数再起一个窗口。

    调用该函数之后,在内部再次调用 DialogBoxIndirectParamAorW(),该参数与第一个有不同:

    因为他们的回调函数都是确定不变的,并且资源地址也是不变的,因此目前有两种方式跳过第一个窗口:

    ① 修改 DialogBoxIndirectParamAorW() 的参数

    ② 修改 DialogBoxParamA() 的参数

    两种方法都可以绕过第一个窗口。

  • 相关阅读:
    7. Bagging & Random Forest
    VS 多工程代码编写
    C++(vs)多线程调试 (转)
    halcon发布
    windows 批处理文件调用exe
    Halcon编程-基于形状特征的模板匹配
    缺陷检测 深度学习
    PID控制
    去掉图片中的红色标记的方法?
    图像处理之图像拼接四
  • 原文地址:https://www.cnblogs.com/Rev-omi/p/13745113.html
Copyright © 2011-2022 走看看