风动鸣 发表于 2015-11-13 02:18

干掉易语言时钟【另类方法】

本帖最后由 风动鸣 于 2015-11-13 15:33 编辑

大家好!我是风动鸣{:5_121:}第一次发教程,请大家多多指教 多多包涵{:6_209:}
OD调试带有时钟的易语言程序时
要干掉时钟 我知道的有四种方法 (新增一种方法 请看后面){:6_210:}
1,使用工具 附上工具 恒大工具包地址:https://www.52hb.com/thread-1957-1-1.html


移除所有定时器

2,在 事件call 下条件断点






F9运行起来后 看图:


值得注意的是:如果程序不只一个时钟呢 那么要怎么写条件断点呢







举个相反的例子 在事件call 下条件断点 只让时钟函数断下来要做到这个效果 我先把两时钟都停下来 按界面的两个停止按钮即可











好了 以上两个方法 都是 恒大 教的 之前我根本就不懂的3,使用APIKillTimer 【干掉时钟】 (这个才是我真正要介绍的)它有两个参数 具体看图


要调用 KillTimer 函数 {:5_122:}首先要知道它的函数地址 看上图: 地址为 77D18C42两个参数:TimerID的值是固定的 0x3E8 【就是十进制的1000】那么时钟的句柄怎么找呢 看下图






函数地址:77D18C42两个时钟句柄:000F02A2和 0011028ATimerID : 0x3E8接下来就是使用KillTimer 函数了 还是看图吧{:5_121:}


004010D0/.55            push ebp004010D1|.8BEC          mov ebp,esp004010D3|.68 E8030000   push 0x3E8004010D8|.68 A2020F00   push 0xF02A2004010DD|.E8 607B9177   call 77D18C42004010E2|.8BE5         mov esp,ebp004010E4|.5D          pop ebp004010E5\.C3          retn禁用 事件call断点 F9 看效果


可能会有两种情况出现{:5_118:}a,你修改的时钟函数 写入的时钟句柄刚好是本时钟的句柄 那么停止后可能有问题 时钟自己停止自己b,你修改的时钟函数 写入的时钟句柄 是 另一个时钟的句柄 意思是这个时钟 停止另一个时钟总结:虽然调用API KillTimer 来干掉时钟 很麻烦 但是是一个不错的思路 {:5_117:}大家可以试试 使用 SetTimer 来改变时钟周期
4,作废SetTimer (开启时钟用的)还是直接上图{:6_206:}















作废SetTimer 来干掉时钟是最省事的 大家学到了没?{:5_124:}最后, 思路不只是针对这个程序 所以的程序都可能适用 恒大 说过 要灵活点 要懂得举一反三!!!{:5_116:}
附上恒大的免费公开教程 https://www.52hb.com/thread-13269-1-1.html
不知道以上有没有营养 谢谢观看。{:5_123:}

觉得对你有帮助,记得加“热心”哦!{:6_215:}
免币下载地址:**** Hidden Message *****
附上程序和源码:

风动鸣 发表于 2015-11-13 02:20

第一次坐自己的 沙发{:5_116:}

mst丶奇侠 发表于 2015-11-13 02:47

{:5_117:}板凳中,给个顶楼主

Zixue 发表于 2015-11-13 03:13

大半夜的不容易啊。支持下{:6_201:}

问我 发表于 2015-11-13 04:01

学习了,这个讲义很好!赞一个!

antony 发表于 2015-11-13 04:15

楼主第二种和第三种方法看图片没看懂

【By】岁月无痕 发表于 2015-11-13 07:36

楼主讲的很好,很详细。

darenfoo1 发表于 2015-11-13 07:54

能断下来才是硬道理,哈哈

爱的纯粹 发表于 2015-11-13 08:01

好 这个好 学习下干掉时钟

爱的纯粹 发表于 2015-11-13 08:09

我想要那个工具 哪里有下载 分享下
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 干掉易语言时钟【另类方法】