OD调试程序3】的更多相关文章

条件跳转指令的图片,作为以后的参考. 载入了reverses.eve程序,F8下去,发现一个跳转,调用了一个函数,致使程序结束.于是我们绕过它,参考上面的 跳转指令图片. 然后继续F8 又会发现一个跳转,我们需要它跳,不然下面有个无条件跳转,又会进入一个陷阱 继续F8,又会发现一个跳转,我们不要它跳,于是我们根据置顶的图,实现了不跳转. 继续F8, 发现一个跳转,会发现连接了下一个陷阱,我们绕过它,于是就成功了. 然后保存爆破过后的程序 全选修改过的痕迹,生成新的reverses1.exe文件.…
经常使用断点  拦截窗体:  bp CreateWindow 创建窗体  bp CreateWindowEx(A) 创建窗体  bp ShowWindow 显示窗体  bp UpdateWindow 更新窗体  bp GetWindowText(A) 获取窗体文本  拦截消息框:  bp MessageBox(A) 创建消息框  bp MessageBoxExA 创建消息框  bp MessageBoxIndirect(A) 创建定制消息框  bp IsDialogMessageW  拦截警告声…
常用断点  拦截窗口:  bp CreateWindow 创建窗口  bp CreateWindowEx(A) 创建窗口  bp ShowWindow 显示窗口  bp UpdateWindow 更新窗口  bp GetWindowText(A) 获取窗口文本  拦截消息框:  bp MessageBox(A) 创建消息框  bp MessageBoxExA 创建消息框  bp MessageBoxIndirect(A) 创建定制消息框  bp IsDialogMessageW  拦截警告声:…
作者:Fly2015 对于FSG壳.之前没有接触过是第一次接触.这次拿来脱壳的程序仍然是吾爱破解论坛破解培训的作业3的程序.对于这个壳折腾了一会儿,后来还是被搞定了. 1.查壳 首先对该程序(吾爱破解培训第一课作业三.exe)进行查壳: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="&q…
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html INT 3 中断调试处理流程 一.调试器如何下INT 3 断点 1)首先,调试器使用 ReadProcessMemory,读取断点内存地址的字节. 2)之后,调试器再使用 WriteProcessMemory,将指定的内存地址指令写为0xCC. 3)之后,当程序执行到这里,遇到CC指令,会从IDT表中查03号段描述符,其会定向到Trap03函数. 4)经过一系列操…
脱壳--修复加密IAT 对两个练手程序进行脱壳修复加密IAT(其实是一个程序,只是用了几种不同的加壳方式) 第一个程序 Aspack.exe 下载链接:https://download.csdn.net/download/weixin_43916597/18372920 分析程序信息 首先先查看这个程序的信息,使用PEiD查看该exe程序 这里可以看出:编译器版本:vc6.0,壳的名称:ASPack 调用OD调试程序 很清晰的看得到程序最开始的OEP是pushad 自然而然就想到了对esp打断点…
线程本地存储(TLS) 对于多线程应用程序,如果线程过于依赖全局变量和静态局部变量就会产生线程安全问题.也就是一个线程的使用全局变量可能会影响到其他也使用此全局变量的线程,有可能会造成一定的错误,这可以通过线程同步机制解决当然也可以通过线程本地存储解决.线程本地存储意思是每一个线程在使用全局变量的时候都产生一个只属于本线程的副本,这样我们就可以直接使用这个副本,而不会影响到其他线程. TLS分类 动态TLS 动态TLS涉及四个函数: TlsAlloc() //分配可用的TLS索引并初始化索引 T…
程序: 运行程序 点击“Verify” 关闭该程序,启动 OD 再运行程序 逆向: 用 OD 载入程序 按 F8 往下走 执行完这个 call 指令就弹出了对话框 这个 call 指令调用了 DialogBoxParam 函数创建模态对话框 如果步入该函数的话,会跳到动态链接库中 如果按 Alt+F9 让程序回到执行区域的时候停下也不行 DialogBoxParam 函数具体实现什么样的操作由参数 IpDialogFunc 决定,IpDialogFunc 为指向模态对话框过程的指针 IpDial…
程序: Keyfile.dat 里的内容 该文件中要至少有 9 个 ReverseMe.A: 运行程序 用 OD 打开该程序,运行 弹出的是错误的对话框 该程序发现 OD 对它的调试,所以该程序对 OD 进行反调试 重新载入程序,按 F8 往下走 这个循环是对 Keyfile.dat 的内容进行判断的 循环过来,来到一个 call 语句 执行该 call 语句就会弹出那个弹窗 这个 call 指令调用的函数就在下面 这个地方调用了一个 IsDebuggerPresent 函数 该函数判断程序进程…
OD版本:OllyICE v1.10   在从文件菜单选择附加后,OD会在注册一个窗口类后,先创建一个0x138大小的进程表; 再是CreateWindowExA 创建窗口;   00478013 loc_478013:                             00478013                 push    0               ; int 00478015                 push    offset sub_477C10 ; int…
代码源自<VC++深入详解>第15章 “多线程”,位于第563页 - 566 页. 程序的目的是展示多线程运行的效果: #include <windows.h> #include <iostream.h> DWORD WINAPI Fun1Proc( LPVOID lpParameter // thread data ); ; int main() { HANDLE hThread1; hThread1 = CreateThread( NULL,,Fun1Proc,NU…
文章整理发布:黑客风云  1.我的os是winXP,无法使用trw2000,而softice装了多次均未成功,还蓝屏死机多次.郁闷. 2.友好的gui界面,不像softice.可以边干活边听歌,不像softice,把整个os都挂起了.多用两次,连时间都不知道了. 3.强大的内存查看功能,再不用什么-d了,而且跳转方便,爽!一目了然. 4.强大的右键菜单功能 菜单: 文件: 1.其中包括该菜单的下部有上次打开的纪录,该纪录保存有上次未清除的断点. 2.附加.对付那些Anti-Debug程序.先运行…
课后练习:C语言实现Linux命令--od --------CONTENTS-------- 题目详情与分析 设计思路 遇到的问题及解决 待实现的设想与思考 学习反思与感悟 附1:myod.c「1.0版本」(Windows下) 附2:参考资料 题目详情与分析 题目:复习c文件处理内容,编写myod.c,用myod XXX实现Linux下od -tc -tx1 XXX的功能. 在Linux下使用od -tc -tx1 XXX的效果为: 下面对od命令进行简单的分析: 1.功能 od命令用于将指定文…
gdb aslr -- 显示/设置 gdb 的 ASLR asmsearch -- Search for ASM instructions in memory asmsearch "int 0x80" asmsearch "add esp, ?" libc assemble -- On the fly assemble and execute instructions using NASM assemble assemble $pc> mov al, 0xb&…
作者:Crazyman_Army 原文来自:https://bbs.ichunqiu.com/thread-43469-1-1.html 0x00知识回顾 (由于笔者省事,没开XP虚拟机,而且没关闭ASLR,所以每次重载的内存地址会不一样) 在第一章的内容中,笔者已经讲了OllyDbg(简称OD)的界面介绍以及基础的操作,普及了常用的汇编指令 上次课在底下的附件中,我留下了一个演示样例,大家载入OD后搜索到字符串点击跟踪到反汇编窗口的时候会发现与第一章所讲的程序的框架不太一样. 尤其可见多出了很…
CE+OD无法附加游戏进程的破解方法 来吧 别在为这烦恼了 其实看过 windows 核心编程那本书的人都知道 计算机编程领域 那些所谓的游戏保护 真的只是为难菜鸟而已,对于大鸟基本不起作用. 游戏无法就是采用 线程 进程 SSDT 等等这些东西来限制一些如:CE OD ASM32 这些工具调试而已 比如OD要调试一个程序进程 首先做的是2步操作 1.调用系统库中打开进程的API函数 2.创建新线程来调试程序进程. 当如果 一个游戏出现无法OD附加或者调试失败的情况,那么可以先检查下 这2个方面…
声明: 1.本指令集搜集自各论坛.博客,欢迎补充讨论 OD脚本指令集 在后面的文档中, “源操作数” 和 “目的操作数”表示以下含义: - 十六进制常数,既没有前缀也没有后缀. (例如:是00FF, 而不是 0x00FF 和 00FFh的形式)   十进制常数,在后缀中加点. (例如:100. 128.也可以是浮点数128.56,浮点数只能保留小数点后2位) - 变量,这个变量必须在使用前用Var进行定义 - 32位寄存器 (EAX, EBX, ECX, EDX, ESI, EDI, EBP,…
声明: 1.本表来自各论坛.博客,欢迎补充讨论 指令 解释 OD汇编指令   NOP 无操作 PUSH 将数据压如堆栈中 POP 出栈(与PUSH相反) PUSHAD 所有通用寄存器的内容按一定顺序压入到堆栈中,相当于’PUSH EAX,PUSH ECX,PUSH EDX,PUSH EBX,PUSH ESP,PUSH EBP,PUSH ESI, PUSH EDI’ POPAD 该指令与PUSHAD正好相反,它从堆栈中取值,并将它们放到相应的寄存器中,等价于“POP EDI,POP ESI,POP…
功能说明:输出文件内容.语 法:od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][--help][--version][文件...]补充说明:od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来.参 数: -a  此参数的效果和同时指定"-ta"参数相同.  -A<字码基数&…
awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk ''  | output 1.首先要知道形式 awk 'command' file 如 awk '{print $0}' a.txt b.txt   (后面可以跟一个或多个文件)   2.command学习.command是awk的精髓,其结构为 '条件 {动作} 条件2 {动作2} ……'   2.1关键字学习: 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元…
VS2015下如何用编译.调试程序. (通过实践给出截图) 安装步骤: 下载安装网址[VS2015下载地址](http://www.ithome.com/html/win10/164028.htm) 编译: 选择新建项目--选择Visual C++--空项目 编写一个简单的C程序,完成以后单击生成--生成解决方案,然后单击调试--启动调试 单击文件--保存 调试: 通过几个问题来演示调试的过程: (通过实践给出截图) 问题:调试过程中Debug未输出结果就闪退. 解决思路:项目--当前项目属性(…
用户通常使用od命令查看特殊格式的文件内容.通过指定该命令的不同选项可以以十进制.八进制.十六进制和ASCII码来显示文件. 语法: od [选项] 文件- 命令中各选项的含义: - A 指定地址基数,包括: d 十进制 o 八进制(系统默认值) x 十六进制 n 不打印位移值 - t 指定数据的显示格式,主要的参数有: c ASCII字符或反斜杠序列 d 有符号十进制数 f 浮点数 o 八进制(系统默认值为02) u 无符号十进制数 x 十六进制数 除了选项c以外的其他选项后面都可以跟一个十进…
NSAssert: NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并切可以自定义异常描述.NSAssert()是这样定义的: #define NSAssert(condition, desc) condition是条件表达式,值为YES或NO:desc为异常描述,通常为NSString.当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述…
合肥程序员群:49313181.    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入)Q  Q:408365330     E-Mail:egojit@qq.com 这一节我们利用CE和OD去找到被选中的怪物对象,和怪物列表.从而为后面自动遍历怪物实现自动打怪的外挂做铺垫.当然在这之前我们得了解汇编中数组和列表是怎么定位的.一般是[eax*4+0x0063fedd],这样通过自增通用寄存器eax去实现数组下标.0x0063fedd在这里就是一个基址.因为32位系统的地址是4…
程序先出现一个nag 然后出现主窗口 然后出现第二个nag窗口        我们查个壳   没有壳 那就载入OD看看,继续用调用堆栈的方法 发现一直执行用的都是这一个call,最后执行到程序结束.之后往上看见一个跳转,下个断点看看 如果一步一步,一次一次改就完全可以避免了,但是不可能,每一次都打开来改.那我们是不是能够写一段代码if第一次就跳,第二次就不跳,第三次也跳   那我们就想到了inline patch,点M   看看PE,可以在数据段写入 找到一个都是用0填充的 找个地方,储存我们想…
今天还是15的那个程序,但是呢,换一种方法去掉NAG窗口 用OD载入,暂停,查看调用的堆栈 先看最后一个    查看调用,下断点 往上看看,找到入口的地方,设下断.点,重载,运行,单步 通过单步发现   它要两次经过很多跳转,第一次的跳转与第二次的还不一样,说明问题出在跳转上,我们可以把有问题的比较靠前的跳转NOP掉.看看,保存看看 发现成功了! 来自为知笔记(Wiz)…
可以达到不脱壳的妙用.含义:把补丁写入程序代码,就叫内嵌补丁 那我们先看看今天的程序 是一个写DVD目录的程序,点continue就可以进入使用了      发现一个还有29天 就过期了   ,点enter reg.code的时候,乱输出现not valid的窗口  ,当然我们改一下日期  ,它的continue就会灰掉 ,然后这个程序就不能用了,需要购买或者是注册码. 把时间改掉之后后改回来,发现还是灰色的 不能用了.   说明它把使用日期肯定写入了电脑的某个地方,可能是注册表之类的. 我们先…
1.程序窗口[chuang kou]句柄[ju bing]检测原理:用FindWindow函数[han shu]查找[cha zhao]具有相同窗口[chuang kou]类名和标题的窗口[chuang kou],如果找到就说明[shuo ming]有OD在运行[yun hang]//********************************************//通过查找[cha zhao]窗口[chuang kou]类名来实现检测OllyDBG//*****************…
首先把安装好的软件拖入PEID,看看它是用什么语言写的    然后用OD载入程序,查找关键字,步骤看上一个笔记 双击到达代码处,发现这在一个跳转里面.可能第一反应是修改跳转,经试验后发现这是没用的所以放弃 重新来过一遍,再次来到这里,仔细看发现决定是否跳转的是al,al的值,然而al的值使上一行的命令给的.所以在这下一个断点. 重新载入程序,运行来到断点处.看注释,发现这这个值调用了两个地址.点击注释那一行右键转到那两个地址下断点 点击enter键回到刚刚那个断点处,然后给另一个地址下断点 重新…
破解程序获得使用权限:       破解思路:其实程序加密或者添加neg窗口都是为了让消费者付出更多的代价来解决这些问题.然而身为一个技术人员是可以靠技术来使这些东西消失的.只要我们找到那些东西出现的地方并且想办法跳过它们就成功了.       OD的两种断点:软件断点.硬件断点.(内存断点属于软件断点,并且每次只能设置一个,设置了另外一个上一个就会自动删除,设置一个内存断点会改变整块(4KB(4千字节))的内存,会明显降低OD的性能,因为OD经常会校对内存)                  …