反汇编EXE添加一个启动时的消息框
反汇编EXE添加一个启动时的消息框
最近有一个要修改PE
文件的需求,就先从EXE
文件下手吧,我也是初学一个小时而已,不过之前接触过一点汇编罢了,这篇文章算是个DEMO
,主要的思路是将其反汇编得到汇编代码后,然后手动修改他的逻辑首先跳转到弹框区域再跳转回来去执行原来的代码,相关的工具有ollydbg
,以及要修改的一个xp
系统自带的扫雷软件,还有参考的文章,都会在文末给出。
描述
首先准备好要用到的OD
工具和扫雷这个软件。
使用OD
将扫雷导入之后,自动定位到了入口点。
之后选择前2
行将其Ctrl + C
复制,主要是为了空出来足够的位置让我们完成指令的修改。
然后返回到OD
,我们需要找到HEX
数据是00
的地方,通常也就是尾部位置存在的空白位置,注意我们是不能直接插入一些指令的,只能跳过去执行了我们想要的代码之后再跳回来执行原代码,我们可以使用右击-查找-二进制字符串,多输入几个0
点击搜索即可,因为在扫雷中前边也有一堆00
数据段,我们可以使用Ctrl + L
,不断搜索下一个。
我们定位到尾部的00
位置后,我们多选择一些行,选中几十行,右击-编辑-使用00
填充。
现在我们随便空几行,我是在01004A65
这个地址开始修改,可以直接Ctrl + G
,定位到这个位置。
我们选定这个位置后,开始打一个空格,尝试修改一下汇编代码,填入PUSH 0
。
之后我们再占用一下位置,填写一下如下的代码,这个01004AB5
是我随意写的,只是为了占一个位置。
接着我们需要找到弹窗的地址,右击-查找-名称,在弹出的窗口点一下名称,让他排一下序,我们找到&USER32.MessageBoxW
,之后右击-复制到剪贴板-地址。
之后我们定位到01004A73
这个位置,填入CALL DWORD PTR DS:[010010B8]
,在DS:[010010B8]
中的地址就是刚才复制的地址。
这样弹出消息框的部分就完成了,四个push
加一个call
就是弹消息框的,中间的两个push
第一个就是传标题第二个就是传内容的,现在我们依旧再写两行语句进行占位,这主要是为了后边启动逻辑方面用,也就是为了最初的时候我们复制的启动时定位的那两行使用。
之后我们再空出来几行代码,在01004A91
地址上右击-编辑-二进制编辑。
在UNICODE
区域填入Title
,然后保存。
同样空几行位置,在01004AE3
添加一个Hello World
。
之后我们回到01004A67
,在此处开始添加汇编,双击或者按空格都可以,在01004A67
位置修改为PUSH 01004A91
,之后接着修改,在下一个位置也就是01004A6C
修改为PUSH 01004A9F
,也就是将刚才两个添加的字符串放置于此处引用。
紧接着我们修改启动的逻辑,点击右边的EIP
定位到入口位置。
在最初的时候我们选择了前2
行位置的代码进行了复制,现在我们同样选中前2
行,然后右击-编辑-用NOP
填充。
然后在第一个位置也就是01004A65
,填入JMP 01004A65
,也就是我们刚才找到的编辑过的00
段的第一个位置。
然后我们再回到01004A65
,从01004A79
开始按照顺序将原来的2
行汇编填充进去,就是在最初的时候我们复制到记事本的代码,出现了多个nop
的话我们就对于要编辑的从01004A79
开始重新右击-编辑-用00
填充,然后再接着填写,注意最后我们还有一个jmp
跳回的操作,也就是在上图的nop
后的第一条语句地址即01003E28
。
到这基本就差不多了,思路就是从入口开始执行我们自己的代码,然后执行完了再跳转回去继续执行原来的代码。之后我们右击-编辑-复制所有修改到可执行文件。
右击-保存文件,选是,即可保存,注意这边还是要另存为一个文件名,用来和原来的有所区分。
保存过后,运行该文件即可看到效果。
参考
http://www.downcc.com/soft/24420.html
https://www.xiazaiba.com/html/3979.html
https://www.52pojie.cn/thread-217068-1-1.html
反汇编EXE添加一个启动时的消息框的更多相关文章
- IDA反汇编EXE添加一个启动时的消息框
IDA反汇编EXE添加一个启动时的消息框 上一篇文章介绍了用OD反汇编EXE添加一个启动时的消息框,这篇文章也是实现同样的效果,这边主要的思路还是将其反汇编得到汇编代码后,然后手动修改他的逻辑首先跳转 ...
- windows下,给golang编译的exe添加一个图标
通过go build生成的exe文件,通常是一个默认的图标,发给别人的时候,总觉得像病毒,下面我们来给他加一个好看的图标,让他看起来正经一些. 1.找到一个喜欢的图片. 2.通过工具或是在线工具生成. ...
- Yii 设置 flash消息 创建一个渐隐形式的消息框
/*适用情况:比如提交一个表单,提交完成之后在页面展示一条提示消息. 控制器里面这样写: 单条消息: */ \Yii::$app->getSession()->setFlash('erro ...
- Delphi 7中的四种消息框
Delphi中平常使用的消息框有四种形式,有ShowMessage.MessageDlg.Application.MessageBox.MessageBox.下面来深入了解下这四种形式的实现和使用.1 ...
- 使用jQuery开发messager消息框插件
1.插件使用 首先引入jquery库,然后引入dialog.js.dialog.css.messager.js.messager.css,如下: <script type="text/ ...
- (转)让一个进程启动时Windbg自动Attach上去
如何让一个进程启动时Windbg自动Attach上去 以IE为例:需要在注册表中创建一项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current ...
- worker 启动时向 etcd 注册自己的信息,并设置一个带 TTL 的租约,每隔一段时间更新这个 TTL,如果该 worker 挂掉了,这个 TTL 就会 expire 并删除相应的 key。
1.通过etcd中的选主机制,我们实现了服务的高可用.同时利用systemd对etcd本身进行了保活,只要etcd服务所在的机器没有宕机,进程就具备了容灾性. https://mp.weixin.qq ...
- Linux secure boot(安全启动)时添加Nvidia显卡驱动
开启Secure boot情况下,在Fedora 21下安装Nvidia 显卡驱动的方法. Nvidia显卡驱动可以从官网上下载最新版>> 点击进入 下载后添加可执行权限: #chmod ...
- Tomcat启动时自动加载一个类
有时候在开发Web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法. 可以 ...
随机推荐
- CVE-2014-3153分析和利用
本文是结合参考资料对CVE-2014-3153的分析,当然各位看官可以看最后的资料,他们写的比我好. 在看CVE-2014-3153之前我们用参考资料4中例子来熟悉下这类漏洞是如何产生的: /** * ...
- DLL内存加载
动态加载dll 功能: 把一个处于内存里的dll直接加载并且使用. 用途: 免杀(静态文件查杀),外挂(防止游戏自己hook了loadlibrary等函数),以及其他. 原理: ...
- python三元(三目)运算
传统的if,else写法 三元运算 name="alex" if 1==1 else "SB"
- 二、多线程之Thread中run 和start 区别
Thread使用run 和start 区别 结论:run()方法将作为当前调用线程本身的常规方法调用执行,并且不会发生多线程. System.out.println("开始测试多线程&quo ...
- SwiftUI 简明教程之自定义 Modifier
本文为 Eul 样章,如果您喜欢,请移步 AppStore/Eul 查看更多内容. Eul 是一款 SwiftUI & Combine 教程 App(iOS.macOS),以文章(文字.图片. ...
- Jenkins 基础篇 - 安装部署
Jenkins 安装 Jenkins 支持主流的 Linux 发行版系统,同时还支持 macOS.Windows.和 Docker 运行. 具体系统的 Jenkins 安装包可以去官网下载 https ...
- react+antd 使用脚手架动态修改主题色
最近做了一个需求,后台管理系统添加一个可以动态修改ant-design主题色.查询了大多数的文章,发现基本都是抄来抄去,而且文章记录的也一点也不详细.刚刚把这个功能做完了,顺便记录一下如何去修改主题色 ...
- Blazor实现未登录重定向到登录页的方法
今天研究了一下blazor,发现他默认启动就是类似于后台管理系统的界面,看到这个页面我就想给他写个登录,有登录就涉及到未登录重定向的问题,但是我没有找到blazor全局路由的设置,知道的老哥可以告诉我 ...
- Spring Boot & Cloud 轻量替代框架 Solon 1.4.1 发布
Solon 是一个微型的Java开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Micro service.WebSocket. ...
- QTableWidget - 基础讲解(1)
转载:http://www.cnblogs.com/fuqia/p/8904196.html QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC.C#中的DataGrid.说到 ...