【CTF】逆向:Ollydbg使用初级

Ollydbg是Windows下逆向等的不二法器,学会用Ollydbg是做逆向的前提。看雪论坛上有很多关于这个的教程,讲的非常细。前面也看过的各种逆向理论书,现在该是实践的时候了。

OllyDbg 主线程窗口

1. 汇编代码对应的地址窗口
2. 汇编代码对应的十六进制机器码窗口
3. 反汇编窗口
4. 反汇编代码对应的注释信息窗口
5. 寄存器信息窗口
6. 当前执行到的反汇编代码的信息窗口
7~9. 数据所在的内存地址,十六进制,ASCII码
10~12.栈地址,存放的数据,对应说明信息

OD基本快捷键及功能:
F2 下断点,也就是指定断点的地址
F3 加载一个可执行程序,进行调试分析
F4 程序执行到光标处
F5 缩小、还原当前窗口
F7 单步步入
F8 单步步过
F9 直接运行程序,遇到断点处,程序暂停
Ctrl+F2 重新运行程序到起始处,一般用于重新调试程序
Ctrl+F9 执行到函数返回处,用于跳出函数实现
Alt+F9 执行到用户代码处,用于快速跳出系统函数
Ctrl+G 输入十六进制地址,快速定位到该地址处

加载目标文件调试:

1.虚拟地址:一般情况下,同一程序的同一条指令在不同系统环境下此值相同。
2.机器码:这就是CPU执行的机器代码。
3.汇编指令:和机器码对应的程序代码。

调试技巧总结:
1.F2下断点,Alt+b打开断点编辑器,可编辑所有下过的断点,空格键可快速切换断点状态。
2.当位于某个CALL中,这时想返回到调用这个CALL的地方时,可以按"Ctrl+F9"快捷键执行返回功能。这样OD就会停在遇到的第一个返回命令(如RET、RETF或IRET)。
3.如果跟进系统DLL提供的API函数中,此时想返回到应用程序领空里,可以按快捷键"Alt+F9"执行返回到用户代码命令。
4.所谓领空,实际上就是指在某一时刻,CPU执行的指令所在的某段代码的所有者。
5.如004013F7这类地址一般是可执行文件领空,7C8114AB这类大地址一般是系统DLL所在的地址空间。
6.程序通常读取文本框内容的字符串用的是以下两个函数:
GetDlgItemTextA(GetDlgItemTextW) GetWindowTextA(GetWindowTextW)
7.一般我们要结合经验通过猜测的方式多尝试几遍设陷阱,找出相关的函数。
8.按"Ctrl+G"键打开跟随表达式的窗口。
9.也可以通过"Ctrl+N"键打开应用程序的导入表(输入表),然后查看应用程序总共导入了哪些函数来以此推断需要在哪里挖坑下陷阱!
10.关于返回值,汇编代码的返回值约定是存放在eax这个寄存器里边的,如果32位的eax不够存放返回值,系统会将返回值放在内存某个位置并把该位置的地址放在eax返回。

Reference:http://blog.csdn.net/ypist/article/details/815556

时间: 2024-10-14 04:22:07

【CTF】逆向:Ollydbg使用初级的相关文章

网络安全学习和CTF的一些网站

http://www.sec-wiki.com/skill/ 安全技能(里面渗透逆向编程都有介绍) http://blog.knownsec.com/Knownsec_RD_Checklist/ 知道创宇研发技能表v3.0 综合学习平台: http://edu.gooann.com/ 谷安网校 http://www.jikexueyuan.com/ 极客学院 http://www.hetianlab.com/ 合天 http://www.moonsos.com/ 米安网 http://www.i

攻防世界(XCTF)逆向部分write up(一)

晚上做几个简单的ctf逆向睡的更好 logmein elf文件 ida看看main函数伪代码 void __fastcall __noreturn main(__int64 a1, char **a2, char **a3) { size_t v3; // rsi int i; // [rsp+3Ch] [rbp-54h] char s[36]; // [rsp+40h] [rbp-50h] int v6; // [rsp+64h] [rbp-2Ch] __int64 v7; // [rsp+6

<精华篇>:iOS视频大全-持续更新

注意:新浪微博分享的资料和简书分享的资料,略有不同! 小码哥swift3.0版 斗鱼项目视频:点击下载  iOS开发25个项目实战:点击下载 2016PHP全套下载:点击下载  黑马刀哥iOS视频精选:点击下载  支付宝生活圈开发:点击下载 lldb高级用法:点击下载  高级数据恢复系列视频:点击下载 逆向资源视频初级视频:点击下载 2016HTML5全套下载:点击下载 iOS单元测试视频高清:点击下载 面试上百个iOS后的求职感受:点击下载  优化TableView初体验:点击观看 看大神如何

BUGKU-逆向(reverse)-writeup

目录 入门逆向 Easy_vb Easy_Re 游戏过关 Timer(阿里CTF) 逆向入门 love LoopAndLoop(阿里CTF) easy-100(LCTF) SafeBox(NJCTF) Mountain climbing 前言:在bugku上把能写的逆向都写了,由于大佬们的writeup太深奥或者说太简洁了让我(小白)看得云里雾里.所以我写了这个详细点的writeup(理解错的地方望指出),尽量让大家都看得懂.最近比较忙先写到了这里,未完待续 入门逆向 下载后ida打开,双击_m

reversing.kr学习之路-ransomeware

ransomeware - writeup 题目来源 http://reversing.kr 题目知识点:upx + 花指令 + 堆栈不平衡 + exe特征码提取key 前言 文章只是记录一下自己在reversing.kr上学习CTF逆向的经历,如果文中出现什么技术错误,烦请各位大佬,在评论中指正.本人技术刚刚入门,菜鸟一枚,大佬勿喷啊- 正文 首先在网站上下载附件,得到一个zip,里面包含了一个txt.一个exe和一个file.根据txt里面的提示,可以得到exe为加密程序,file为加密后的

第一次OllyDbg逆向记录(分析思路和注意点&其他文章)

OllyDbg 操作菜单栏.工具栏.快捷键 C++调用加强 目录 OllyDbg 操作菜单栏.工具栏.快捷键    1 一.    载入观察    1 1.静态载入观察:    1 2.OD动态观察    1 二.    初步尝试下断查找目标    1 1.如何下断    1 2.接下来有两个选择:    1 2.1手动F9运行目标    1 2.2设条件断点    1 2.3 CALL调用时堆栈小解    1 3.初步断点目标 (条件触发情况)    1 三.调用栈回溯    1 1.回溯到无

为了CTF比赛,如何学习逆向和反汇编?

作者:无名侠链接:https://www.zhihu.com/question/23810828/answer/138696052来源:知乎著作权归作者所有,转载请联系作者获得授权. 元旦节马上就要过去,赶紧趁着12点之前写完回答. ====如果觉得本文对你有用,请点个赞并关注一下我吧~==== 我做逆向大概四年左右,虽然我没有参加过CTF,但还是可以写一些关于如何学习逆向方面的内容~ 逆向实际上是很枯燥的工作,我能从枯燥中感到快乐,这就是支撑我学习逆向的动力了. 学习逆向后有什么用?难道就仅仅

【CTF】逆向基础知识1

虽然逆向涉及的知识比较多,但是如果把应用限定在CTF题目之类的话,我们这里对经常用到的一些基础知识做一个总结. 思路来源:Blue-lotus&信协集训&c++安全编码&0day安全&Google stack frame 的基本概念 ebp 的作用是? ebp和esp是栈的顶端.底端的标志 ebp 和 esp 是怎么相互配合的? 相互配合是指在函数调用时,ebp入栈,被赋新值,然后esp抬高,从而在函数调用时开辟新的栈帧并保持栈帧平衡. calling convention

ollydbg逆向去除winrar烦人的广告

这个事情其实很蛋疼,每天看到它在那弹…前几天看了几个教程,学会使用ollydbg,同时科普了下反汇编的知识,今天运用一下,学习怎么解决这个问题,也算是小试牛刀. 先看看这个框框. 对于这个框框实在深深的厌烦了.然后将它加载到ollydbg,对这个烦人的广告进行去除的动作. 开始的时候一步步走,但是之前看教程说过那样很费时间,直接搜索某个函数,旧那个绘制windows窗口的函数就可以定位,但是我比较担心自己会搞错地方.所以老老实实跑了一遍,看看程序是咋样走的. 经过观察,程序到这基本上已经加载完了