xx学OD -- 消息断点 RUN跟踪(上)
这一篇讲的是 消息断点和RUN跟踪的简单知识
这一篇没怎么看明白 大概使用知道了 怎么用不太清楚。
介绍本次软件特点输入后木有反应(纱布垃圾的。。哈哈)
启动OllyDBG载入这个程序,F9让它运行。这个程序按我们前面讲的采用字串参考或函数参考的方法都很容易断下来。但我们今天主要学习的是消息断点及RUN跟踪,就先用消息断点来断这个程序吧。
首先我们要了解的是消息。(简单介绍机制)
Windows的中文翻译就是“窗口”,而Windows上面的应用程序也都是通过窗口来与用户交互的。现在就有一个问题,应用程序是如何知道用户作了什么样的操作的?这里就要用到消息了。Windows是个基于消息的系统,它在应用程序开始执行后,为该程序创建一个“消息队列”,用来存放该程序可能创建的各种不同窗口的信息。比如你创建窗口、点击按钮、移动鼠标等等,都是通过消息来完成的。通俗的说,Windows就像一个中间人,你要干什么事是先通知它,然后它才通过传递消息的方式通知应用程序作出相应的操作。说到这,又有个问题了,在Windows下有多个程序都在运行,那我点了某个按钮,或把某个窗口最大化,Windows知道我是点的哪个吗?这里就要说到另一个内容:句柄(handle)了。句柄一般是个32位的数,表示一个对象。Windows通过使用句柄来标识它代表的对象。比如你点击某个按钮,Windows就是通过句柄来判断你是点击了那一个按钮,然后发送相应的消息通知程序。
先载入程序填写用户名与注册码不要点check 回到OD查看消息
(点击菜单查看->窗口(或者点击工具栏上那个“W”的图标或者Alt + M组合键)。出现以下界面
如果没有出现消息可以在框内右击刷新一下.
现在下消息断点因为我们要点击Check按钮在消息窗口(上面的截图)中我们可以看到标题这一列好多是软件的控件上的文字。。
这里我们选择Check,右击选择在ClassProc上设置消息断点ClassProc这一列显示的是地址而且特别大估计是系统领域的地址。
先不管它 继续说消息断点
设置后弹出一个框如下
消息编辑框点击下拉菜单选择要设置断点的消息,这里有很多很多。。
因为Check是个按钮所以我们可找相关的消息即当按下按钮再抬起时,即
WM_LBUTTONUP这个消息点击确定即可之后可以看到所有消息的这个窗口上有三个地方显示了粉色可见只要是软件上的按钮都设置了这个消息断点。到此断点完成。
现在我们还要做一件事,就是把RUN跟踪打开。
这个RUN跟踪是干什么的?
简单的说,RUN跟踪就是把被调试程序执行过的指令保存下来,让你可以查看被调试程序运行期间干了哪些事。RUN跟踪会把地址、寄存器的内容、消息以及已知的操作数记录到RUN跟踪缓冲区中,你可以通过查看RUN跟踪的记录来了解程序执行了那些指令。在这还要注意一个缓冲区大小的问题,如果执行的指令太多,缓冲区满了的话,就会自动丢弃前面老的记录。
打开RUN跟踪: 点击菜单上的调试按钮 选择打开/关闭RUN跟踪
点击后可以看见它下边的关闭RUN跟踪选项由禁用变可用此现象判断RUN跟踪是打开还是关闭。
设置RUN跟踪: 保证当前在我们调试的程序领空,在反汇编窗口中点击右键,在弹出菜单中选择 RUN 跟踪->添加所有函数过程的入口
我们可以看到OllyDBG把识别出的函数过程都在前面加了灰色条,当这些指令前的灰色条被执行过后灰色就变为红色了。
好了 点击Check运行程序。OD断下来如图:粉红色是条件断点
可以看到这里的地址很大是在系统领空。
我们以前都是断下后就在程序自己的领空我们再分析程序,就算不是也要想别的办法让它停在离断点最近的程序部分。。
(按Alt+F9好像就可以,这里这么做的。。)
这时我们打开内存窗口M按钮找到CODE即代码段在CODE那一行F2下访问断点。
我们这里的意思就是在消息断点断下后,只要按F9键运行时执行到程序代码段的指令我们就中断,这样就可以回到程序领空了(当然在401000处所在的段不是绝对的,我们主要是要看程序的代码段在什么位置,其实在上面图中 OllyDBG 内存窗口的“包含”栏中我们就可以看得很清楚了)。设好访问断点后我们按F9键断下:
接xx学OD -- 消息断点 RUN跟踪(下)
转载于:https://blog.51cto.com/xzv587/1363204
相关文章:

iOS-UIWebView添加头部和尾部
2019独角兽企业重金招聘Python工程师标准>>> 前言 项目中使用UIWebView显示本地或者是服务器上的页面很容易,但是仅限于显示页面,可控性并不高,如果有需要在头部和尾部加上原生的view,显示部分信息相对于全部使用UIWeb…

epoll 入门例子 tcp server/client
原文: https://rebootcat.com/2020/09/26/epoll_examples/ 复习一下 上一篇博文 epoll原理深入分析 详细分析了 epoll 底层的实现原理,如果对 epoll 原理有模糊的建议先看一下这篇文章。那么本文就开始用 epoll 实现一个简单的 tcp server/client。 本…
张红忠:智慧化时代,如何通吃5G模组、AIoT?
受访者 | 张红忠,日海智能副总裁、云AIoT创新中心总经理记者 | Aholiab,编辑 | 邓晓娟出品 | AI科技大本营(ID:rgznai100)日海智能是目前国内AIoT领域的头部企业,以AIoT为核心,形成了5G&AI物联网终端、…

JQUERY打造隐藏在左侧的弹性弹出菜单
代码简介: 隐藏在左侧的弹性弹出菜单,从淘宝扣下来的,也可作为JAvaScript缓冲动画的典型教程。本弹性菜单可扩展性强,实际上不光可以做成菜单,也可布局一些图文混排的内容或一段视频,总之被弹出的内容是在一…

Num55 boss09(activiti安装以及API)
2019独角兽企业重金招聘Python工程师标准>>> 安装流程设计器插件: 使用框架提供的方式创建23张表: 流程部署,定义,启动&查询,办理任务: 流程的部署,查询,删除 & …

模仿nginx修改进程名
个人博客原文: https://rebootcat.com/2020/10/25/setproctitle/ nginx 进程名 使用 nginx 的过程中,我们经常看到 nginx 的进程名是不同的,如下: $ ps -ef |grep nginx smaug 1183 1115 0 05:46 pts/2 00:00:00 grep …
机器学习模型的超参数优化 | 原力计划
作者 | deephub责编 | 王晓曼出品 | CSDN博客头图 | CSDN付费下载自东方IC引言模型优化是机器学习算法实现中最困难的挑战之一。机器学习和深度学习理论的所有分支都致力于模型的优化。机器学习中的超参数优化旨在寻找使得机器学习算法在验证数据集上表现性能最佳的超参数。超参…

准备IE--复习NP,NP从头开始,每天学一点,就多一点收获
2011-07-07 今天开始重新开始NP!每天一实验,加油!写下心路历程,为自己加油!转载于:https://blog.51cto.com/sunchangsheng/605482

[20160608]自治事务引起死锁.txt
[20160608]自治事务引起死锁.txt --链接http://www.itpub.net/thread-2060966-2-1.html上的讨论,很久以前也遇到过 --(http://blog.itpub.net/267265/viewspace-721262/),时间有点久远,自己重复测试看看: 1.环境: SCOTTtest> &r/ver1 PORT_STRING V…

动感效果的TAB选项卡 jquery 插件
动感效果的TAB选项卡 jquery 插件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><me…

Linux上隐藏进程名(初级版)
缘起 上一篇博文 模仿nginx修改进程名 中提到了一种修改进程名的方法,就像 nginx 一样,给不同进程命名为 master 以及 worker 等。那么能不能把新进程名设置为空字符串呢?如果能,又会有哪些应用场景呢? 答案可能是能…
神操作!一行Python代码搞定一款游戏?给力!
来源:pypl编程榜一直以来Python长期霸占编程语言排行榜前三位,其简洁,功能强大的特性使越来越多的小伙伴开始学习Python 。甚至K12的同学都开始学习Python 编程。新手入门的时候趣味性其实最重要的。那么一行Python 代码到底能玩出什么花样&a…

jquery对所有input type=text的控件赋值
function resetData() { $("input[typetext]").each( function() { $(this).attr("value",""); } ); }

free not return memory
个人博客:https://rebootcat.com/2020/11/05/free_mem/ 内存泄露? 观察到一台机器上的内存使用量在程序启动之后,持续增长,中间没有出现内存恢复。怀疑是不是出现了内存泄露的问题? 然后使用相关的内存分析工具进行了…

成大事必备9种能力
挑战生存的能力:善于在现实中寻找答案 1、摆正心态,敢于面对现实 对于那些不停地抱怨现实恶劣的人来说,不能称心如意的现实,就如同生活的牢笼&a…
懂语言者得天下:NLP凭什么被称为人工智能的掌上明珠?
受访者 | 简仁贤,竹间智能创始人&CEO记者 | 邓晓娟出品 | AI科技大本营(ID:rgznai100)随着技术的发展,大数据、云计算、人工智能、区块链都慢慢地为人熟知。2016 年 Google 推出 AlphaGo,让人工智能走进了大众的视…

[转]SIFT特征提取分析
SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points)及其有关scale 和 orientation 的描述子得到特征并进行图像特征点匹配࿰…

博客大事记之迁移博客到香港主机
个人博客:https://rebootcat.com/2020/11/10/move_blog_hk/ 前言 之前其实已经写过一篇博文: 迁移博客到香港虚拟空间,那为什么又要写这篇博客呢? 上次其实是把我的博客迁移到一个香港的虚拟空间里,但是不到半年的时…
限时福利:腾讯高级专家手把手教你打造 OCR 神器!
OCR,英文全称即 optical characters recognition(光学字符识别),通过服务器把图片上的文字识别出来,以供大家编辑使用,比如进出火车站的时候,已经可以自动识别的身份证;在道路行驶中…

C++与.net的编译方式
C和.Net程序采用了两种不同的编译方式。 通常一个C编写的程序,都是一次编译成二进制的代码,在相应的操作系统平台上直接执行即可。 而.Net程序采用两次编译的方式,用C#,VB.Net等语言写成的程序被编译成IL代码,通过CLR在…

awk (一)
示例文件:[rootorclsrv ~]# catsample Heigh-ho! sing,heigh-ho! unto the green holly: Most friendship isfeigning, most loving mere folly: Then, heigh-ho, theholly!使用感叹号(!) 作为字段分隔符(FS)打印示例数据的第1 个字段:[rootorclsrv~]# …

TCP全连接和半连接的问题探讨
个人博客: https://rebootcat.com/2020/11/14/tcp_accept/ 从何说起 说起 tcp 的连接过程,想必 “3次握手4次挥手”是大家广为熟知的知识,那么关于更细节更底层的连接过程也许就很少人能讲清楚了。 所以本文会先简单回顾一下 tcp 的 3次握手…

[转] ASP.NET MVC3 路由和多数据集的返回
1.ASP.NET MVC3 中的路由 同前边一样本篇并不会过多的介绍理论知识,我们在Global.asax.cs文件中可以看到如下代码: routes.MapRoute("Default", // Route name"{controller}/{action}/{id}", // URL with parametersnew { controlle…
给Python代码加上酷炫进度条的几种姿势
作者 | 刘早起来源 | 早起Python(ID: zaoqi-python)大家好,在下载某些文件的时候你一定会不时盯着进度条,在写代码的时候使用进度条可以便捷的观察任务处理情况,除了使用print来打印之外,今天本文就介绍几种…

(转)mongodb分片
本文转载自:http://www.cnblogs.com/huangxincheng/archive/2012/03/07/2383284.html 在mongodb里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内…

深入浅出paxos
原文 https://rebootcat.com/2020/12/05/paxos/
Uber 前无人驾驶工程师告诉你,国内无人驾驶之路还要走多久?
受访者 | Graviti 创始人&CEO 崔运凯记者 | Aholiab,编辑 | Carol出品 | AI科技大本营(ID:rgznai100)经过数年的发展,现在的人们谈到“AI”已经不再像过去一般感到遥不可及。但 AI 在国内发挥的作用仍然只是冰山一角ÿ…

oracle服务
OracleOraDb11g_home1ClrAgent服务,在网上查找到了资料 http://download.oracle.com/docs/cd/B19306_01/win.102/b14306/install.htm Configuring Extproc Agent Using Windows Service As part of Oracle Database Extensions for .NET installation, a Windows se…

B00009 C语言分割字符串库函数strtok
切割字符串是常用的处理。 这里给出一个使用函数strtok切割字符串的例子。 使用C语言的库函数strtok来切割字符串的好处在于,可以指定任意字符作为分隔符来切割单词。使用该函数,切割字符串的分隔符可以同时指定多个,放在一个字符串数组中。 …

WEB打印大全
1、控制"纵打"、 横打”和“页面的边距。 (1)<script defer> function SetPrintSettings() { // -- advanced features factory.printing.SetMarginMeasure(2) // measure margins in inches factory.SetPageRange(false, 1, 3) // ne…