小甲鱼 OllyDbg 教程系列 (十三) : 把代码和变量注入程序 以及 硬件断点

 

小甲鱼 OllyDbg 视频教程:https://www.bilibili.com/video/av6889190?p=21

程序下载地址:https://pan.baidu.com/s/1A4-BDgbdUgy-cmI4IMMzYw    提取码:jsdv

 

 

开始,按照惯例,首先用 PEiD 打开,看下是什么语言编写的程序:

可以看到是 VC6.0 。载入程序,然后运行程序,当出现 neg 窗口时,暂停程序,然后查看调用堆栈:

对应代码位置打上断点:

重新载入程序,运行,发现程序断点到断点位置,按 F9 运行,neg 窗口出现,等一会消失,发现程序运行到断点位置的下一行,说明断点位置正确,这个就是出现 neg 窗口的位置。

现在既然找到断点位置,常规做法是 直接 nop 掉这个call 调用,现在可以 nop掉保存程序,然后运行,发现不是想要的结果,说明不能直接 nop。

再重新载入原来的程序,按 F9 发现程序的三个窗口都是通过这个 call 调用来显示的,然后往上看,发现一个 je 跳转,这个可以控制 call 调用是不是显示窗口,所以就相当于一个 if else ,这里要显示最后一个窗口 所以就相当于等于 2 时跳转,

可以找一块程序自身不用的内存空间来写入内联补丁。点击 m ,查看程序的 PE 映射:

双击 data 段,进入 data 段,找到没有使用位置,下一个硬件写入断点,测试要是用的位置在程序运行时有没有使用,如果在程序运行 的时候使用的那个位置,就按上面方法再找一个位置。然后继续测试,直到找到程序在运行时不会使用的位置:

下完 硬件写入断点后,重新载入程序,测试要写入数据的位置是否可用( 也就是程序在运行的时候不会往这个位置写入数据 ),这个示例中程序不会写入数据,这个位置可用。

找到要写入 内联补丁的位置:

在要写入的位置添加书签,方便通过 右键 -> 书签 直接跳转:

在 je 位置添加书签:

以前是通过手动跳来跳去直接改汇编代码,现在可以通过插件 NonaWrite 来写 内联补丁的 汇编代码:

开始写 内联补丁的汇编代码:

完成后,内联汇编 代码:

现在开始 改 je 跳转:

保存所有修改。然后运行修改后的程序,发现已经成功,只有 第二个 neg 窗口:

原程序运行后有3 个 neg 窗口

至此,逆向成功。

可以载入修改后的程序,按 F8 单步调试追踪修改后的程序执行流程

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小甲鱼 OllyDbg 教程系列 (十四) : 模态对话框 和 非模态对话框 之 URlegal 和 movgear

小甲鱼 OD 使用教程:https://www.bilibili.com/video/av6889190?p22 exeScope 下载:https://pan.baidu.com/s/1dSWapltdQsX9ttl_lSoq_g 提取码:yz2p URlegal 下载:https://pan.baidu.com/s/1Ljbvsnk_1Ps0e-cp7a1F9A 提取码…

Swiftfox:极速的冲浪体验

Toy Posted in Apps将 Firefox 针对特定的处置惩罚器进行优化之后,便成了 Swiftfox。行使 Swiftfox,无论是启动次第本人,还是阅读网站内容,都能让你觉取得一股强烈的极速之风。更爽的是,你之前所用的 Firefox 设置、主…

小甲鱼 OllyDbg 教程系列 (十五) : 逆向注册机简单算法

小甲鱼 OD 教程: https://www.bilibili.com/video/av6889190?p24 KeygenMe 下载地址:https://pan.baidu.com/s/1gXAscM3WCNpIqxIm5t1rrQ 提取码:z5in 前言 用 OD 打开程序 输入框 常用 API,当不知道是哪个时,可…

以大自然为师,可上天入地的11款仿生机器人

来源:资本实验室尽管人类已经借助科技的力量改造了世界,但许多技能仍然为人类所不拥有,很多恶劣的环境仍然是人类的禁区。而经过大自然的“公平选择”,使得某些生物具有我们所不具备的独特“技能”“,也适合在人类难以…

深度分析:区块链技术未来发展的 8 个趋势

来源:36氪CB Insigh日前发表了一份关于区块链技术的研究报告,结合区块链目前的发展现状,提出了区块链技术未来发展的8个趋势。虽然加密货币和加密资产的价格已从2017年的峰值回落,但区块链创业公司的股权投资,在2018年…

小甲鱼 OllyDbg 教程系列 (十六) : 简单病毒的逆向分析

小甲鱼 OD 教程( 多态 和 变形 分析 ): https://www.bilibili.com/video/av6889190?p25 https://www.bilibili.com/video/av6889190?p26 ReverseMe Tutorial.zip:https://pan.baidu.com/s/1xOUvXqX6lVdcCwQvpql…

全文解析:面向基于区块链的「机器人经济学」概念中,如何验证自主智能体的行为?...

原文来源:arXiv作者:Konstantin Danilov、Ruslan Rezin、Alexander Kolotov、 Ilya Afanasyev「雷克世界」编译:嗯~是阿童木呀、KABUDA、EVA随着AI技术的发展,自主智能体在速度和精确度方面有了很大的提升,变得更加智能…

小甲鱼 OllyDbg 教程系列 (十七) : 反调试

小甲鱼 OD 教程:https://www.bilibili.com/video/av6889190?p27 ReverseMe.A.B.C.D 下载地址:https://pan.baidu.com/s/1_aVUa6aDATSpE6bQgc6hLA 提取码:ebo2 [调试篇] 调试篇 - 第二十二讲 - OD使用教程22(视频课件试验程序…

一张图看懂微软人工智能

来源:微软科技摘要:对于微软人工智能,你了解多少?是Cortana?是小冰?还是机器翻译?看完下面这张信息图,你会发现你所了解的,很可能只是冰山一角。看完你是否想要立刻参加微…

Pycharm 快捷键 整理

From:http://www.cnblogs.com/themost/p/6900370.html Pycharm 版本控制之本地 Git 用法:https://blog.csdn.net/u013088062/article/details/50350520PyCharm 中文指南(Win版):https://pycharm.iswbm.com/ github:https://github…

ELK 日志系统

Elastic 官方文档:https://www.elastic.co/guide/index.html elasticsearch github:https://github.com/elastic/elasticsearch logstash github:https://github.com/elastic/logstash kibana github:https://github.com/elastic…

设计模式--单例模式

实验7:单例模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解单例模式的动机,掌握该模式的结构; 2、能够利用单列模式解决实际问题。 [实验任务]:学号的单一 仿照课堂的身份证的…

DebugView 使用技巧

From:https://blog.csdn.net/bcbobo21cn/article/details/52401087 DbgView简介 1、什么是 DebugView ? DebugView是一个系统调试信息输出的捕获工具。debugview 是 Sysinternals 公司的系列调试工具。debugview 可以捕获程序中由 TRACE(debug版本)和 OutputDebug…

VS2019 更新MSDN并创建快捷方式

From:https://www.cnblogs.com/Lzl678/p/10686324.html VS2017 下载离线MSDN文档:https://blog.csdn.net/sinat_26222723/article/details/79109653 1. 在线 MSDN 使用方法 1. 进入微软中文官网:https://www.microsoft.com/zh-cn/ 2. 所有…

结构思考力~结构思考力的四个基本特点

反例 “懂事长您好!刘经理来电话说系统出现突发状况,4点钟他无法参加会议了。小张说他晚一点开会没关系,明天再开也可以,但最好别11点30分之前开。可是会议室明天已经被别人预订了,但是星期五空着的。王总的秘书说&am…

【转】 VC MFC 钩子 实现 自绘 窗体 标题栏 非客户区

效果&#xff1a; 程序&#xff1a; #if !defined(_LJF_LJFHOOK_H)#define _LJF_LJFHOOK_H #if _MSC_VER > 1000#pragma once#endif #include <afxtempl.h>#define sLjfDialogOldProcTag _T("CDialog_oldProc")#define SYSBTN_NON -1#define SYSBTN_MIN 0#d…

Jupyter 安装使用

Jupyter的官网&#xff1a;http://jupyter.org/index.html 官方文档&#xff1a;https://jupyter-notebook.readthedocs.io/en/stable/https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks 1. jupyter notebook是什么 官网的介绍是&#xff…

结构思考力~结构化接收信息的三个步骤

第一步&#xff1a;识别信息中的事实、理由及结论。找出信息中哪些是观点类的&#xff0c;哪些是事实描述 类的信息&#xff0c;观点类的信息中哪些是结论、哪些是支撑结论的理由&#xff0c;并将它们区分开。 第二步&#xff1a;找到事实与观点的对应关系&#xff0c;并画出结…

VisualStudio 的 Spy++ —— 窗口、消息 的 查看分析利器

spy 中文使用手册&#xff1a;https://pan.baidu.com/s/1NtLQMP1odHDAla4VH8m9Mg 提取码&#xff1a;294c Spy使用方法&#xff1a;https://www.cnblogs.com/happykoukou/p/6755444.html 教你使用Spy查看软件的流氓行径&#xff1a;https://blog.csdn.net/zahuopuboss/ar…

《MFC初探》之变量类型

From&#xff1a;https://blog.csdn.net/a1459268562/article/details/70653695 MFC常用数据类型&#xff1a;https://www.cnblogs.com/xzxl/p/7955477.html 刚接触 MFC 的人一看到里面各种各样的关键字肯定傻眼了&#xff0c;仿佛完全是另外一门语言了&#xff0c;因为 MFC 中…