1 Ollydbg调试helloworld程序

调试用VC++编写的helloworld程序,在反汇编代码中查找main函数,MessageBox函数;

#include "windows.h"
#include "tchar.h"int _tmain(int argc, TCHAR * argv[])
{MessageBox(NULL,"Hello World!","bcbobo21cn",MB_OK);return 0;
}

在调试工具条上右击,选择 组建;

在弹出的 组建 对话框中,选择 Win32 Release;

把HelloWorld编译为release版本。

启动Ollydbg汉化版;启动失败;

改用英文原版;打开前面的helloworld程序;

停留在00401020处;

调试器停止的地点是EP代码,EP即入口点;再往下找找;

再往下,看到了调用GetVersion函数,GetCommandLineA函数;获取命令行参数之后,应该就到main函数了;

看到上面CALL 00401000;

查看00401000;

看到了VC程序中给出的参数;00401000处先PUSH了4个参数入栈,然后调用了USER32中的MessageBoxA;

2 捕获Windows计算器显示输入数字的动作

相关资料显示,Windows计算器显示用户输入是使用了SetWindowText函数;用PE信息查看工具打开看下;

计算器的基地址是01000000;

该工具会给出详细PE信息;

在工具条上按 I 键,才能看到PE导入表;

看到了User32中的SetWindowText;VA是进程虚拟内存的绝对地址,RVA是从某个基准位置开始的相对地址;

下面开始捕获计算器显示输入数字的动作;

打开calc.exe,停留在003D2D6C;

右击,选择如下菜单;

在所有SetWindowText处设置断点;

执行计算器,看下面代码,TranslateMessage、DispatchMessage、GetMessage;此处是计算器窗口的消息循环部分;

在计算器中输入数字,程序中断在了00BC3678处的SetWindowText;

看右下角的栈窗口,发现了输入的数字;8957;输入了4次数字;在此中断了4次;

3 捕获记事本保存文件的动作和保存的文本

打开Windows自带记事本,

不能打开;Ollydbg不支持64位程序;本机为64位;

看下本机的notepad.exe,它确实是64位的;

网上重新下一个notepad.exe;打开看看,是32位的;下面调试此程序;

根据资料;notepad.exe保存文件是调用了WriteFile,位于Kernel32中;

执行记事本,排序以后,在所有WriteFile处设置断点;

程序停留处是0100739D;

运行,记事本窗口出现;输入“AAAA”;然后保存;点击 保存 按钮后,程序中断在01004C2A处的WriteFile;

看右下角的栈窗口,发现了输入的文本“AAAA”;

图解Ollydbg简单逆向操作案例相关推荐

  1. mysql数据表案例_mysql中库和表的简单操作案例

    mysql中库和表的简单操作案例 发布时间:2020-12-05 09:54:06 来源:亿速云 阅读:71 作者:小新 这篇文章主要介绍mysql中库和表的简单操作案例,文中介绍的非常详细,具有一定 ...

  2. php加数据库开发案例,PHP简单数据库操作类实例【支持增删改查及链式操作】

    本文实例讲述了PHP简单数据库操作类.分享给大家供大家参考,具体如下: 在进行项目开发时,数据库是必不可少的东西了.但是很多时候却又对数据库SQL语句的繁杂而感到头疼.提供一个我自己使用的数据库操作类 ...

  3. 《图解CSS3:核心技术与案例实战》——1.1节什么是CSS3

    本节书摘来自华章社区<图解CSS3:核心技术与案例实战>一书中的第1章,第1.1节什么是CSS3,作者 大漠,更多章节内容可以访问云栖社区"华章社区"公众号查看 1.1 ...

  4. Android逆向分析案例——某点评APP登陆请求数据解密

    今天,七夕,单身23载的程序汪,默默地写着博客~ 上一次的逆向分析案例中讲了如何去分析某酒店的APP登陆请求,为了进一步学习如何逆向分析以及学习其他公司的网络传输加解密,本次案例将继续就登陆请求的数据 ...

  5. Struts2框架完成登录操作案例

    一个简单的登录案例思路分析 在这个案例中,我们要使用struts2框架怎样解决 重点: struts2框架如何完成原来由servlet完成的工作. Struts2框架如何完成请求参数的封装处理 Str ...

  6. linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例

    转自:truemylife.linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例 基本概念: 磁盘.分区.物理卷[物理部分] 卷组[中间部分] 逻辑卷.文件系统[虚拟化后可控制部分] 磁 ...

  7. 《图解CSS3:核心技术与案例实战》——1.3节渐进增强

    本节书摘来自华章社区<图解CSS3:核心技术与案例实战>一书中的第1章,第1.3节渐进增强,作者 大漠,更多章节内容可以访问云栖社区"华章社区"公众号查看 1.3 渐进 ...

  8. 《图解CSS3:核心技术与案例实战》

    <图解CSS3:核心技术与案例实战> 基本信息 作者: 大漠 丛书名: Web开发技术丛书 出版社:机械工业出版社 ISBN:9787111469209 上架时间:2014-7-2 出版日 ...

  9. 4、python简单线性回归代码案例(完整)_python 实现一个简单的线性回归案例

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @File : 自实现一个线性回归.py # @Author: 赵路仓 # @Date : 2020/4 ...

最新文章

  1. 2022年你应该知道的机器学习算法
  2. pinv--求矩阵的伪逆矩阵
  3. 一个具有20位地址和32位字长的存储器_存储器层次结构(三):高速缓存
  4. Scala-2.13.0 安装及配置
  5. java class文件 代码_java_基础——用代码编译.java文件+加载class文件
  6. python线程的学习
  7. [译转]深入理解LayoutInflater.inflate()
  8. 编写第一个 Hibernate 例子
  9. 罗技无线鼠标导致windows 8.1不正常唤醒的问题
  10. 数论——卢卡斯(Lucas)定理(板子)
  11. 专访傲游CEO陈明杰:为何微软对IE8“又爱又恨”
  12. 人才数据报告不会写?指标不明晰?这套人力资源方案帮你统统解决
  13. 重用地图的单目视觉惯导SLAM系统
  14. 210学习日记(18)_ARM基础知识
  15. STM32F103C8T6板子介绍
  16. discord怎么创建账号_如何邀请人们加入Discord服务器(以及创建邀请链接)
  17. 我国改革开放和现代化建设中一些实际问题的思考
  18. 中央子午线的计算方法(转)
  19. cva《财务建模》第五讲笔记
  20. linux命令复制指定文件到指定文件夹

热门文章

  1. python数据采集框架_20190715《Python网络数据采集》第 1 章
  2. 业余学python数据挖掘怎么赚钱_0基础转行学Python,学到什么地步能拿到月薪15k+?...
  3. 00-elasticsearch的pom文件
  4. Understand Skills-Based Routing
  5. JavaScript 技术篇-js语句创建dom节点,并给节点设置属性
  6. Spring Boot自动配置原理
  7. CTFshow 信息收集 web5
  8. [YTU]_2489( C++结构体之统计最高最低分)
  9. Python基础04 运算
  10. SVD理论以及Python实现