美文网首页
逆向工程HelloWord《逆向工程核心原理》

逆向工程HelloWord《逆向工程核心原理》

作者: 29a5cb0c6fb2 | 来源:发表于2018-01-07 17:42 被阅读0次

最近看了《逆向工程核心原理》第二章分析最著名的程序——HelloWord

《逆向工程核心原理》

本人也是小白,再次分享一下学习过程:

首先创建一个源文件的副本:

副本

预览一下修改后的文件和源文件:

源文件 修改后的文件

首先我们用Debugger打开bin文件:

OllyDbg

我用的是OD,载入程序后可以发现调试器自动定位到了EP处(Entry Point:入口点,是windows可执行文件(sys驱动,exe二进制,dll动态链接库)最先执行的代码在内存中的起始位置),这里基本是一些Stub Code(启动函数或称之为Start Code:是编译器为了保证代码可以被正常执行,自动创建的,不在我们的Source Code中。个人感觉大部分是调用的Win32 API)。

之后我们要找到要修改的内容在内存中的位置,根据程序的界面可以推断出程序大致用的代码,这里可以看到程序运行只有一个信息对话框,MesaageBox,可以判断出调用了User.MessageBoxW(),所以,我们搜索所有模块间调用

搜索模块间调用

如图显示出了所有的模块间调用,双击MessageBox即可跳转到调用处

此时我们已经找到了MessageBoxW,并且可以看到他的参数,以及参数的内存地址:

调用MessageBoxW()处

之后,我们只需要定位到参数的内存地址(409278~4092A0(开区间,H的起始地址))之后修改即可:

输入跟踪表达式

VA:Virtual Address虚拟内存地址

参数的字符串 替换字符串

之后运行即可看到显示结果:

替换字符串后的结果

之后保存修改:

保存修改1 保存修改2 保存修改3

当然你可也可以修改标题:

修改标题

小结:通过Buffer(字符串缓冲区)修改字符串有一定的危险性,当你修改的字符串大于原串时,会覆盖后面的内存,可能导致程序出错。当然也可以在新的空内存空间写入字符串之后修改汇编命令,当然如果想要正常成功运行exe还需要PE知识,这对于身为小白的我来说也是后话了。哈哈(ಡωಡ)

另外,这本书的资源都是要收费的,在此我奉献上宝贵的资源包括了源码和实例(找了一个多小时):http://www.pan.baidu.com/s/1i5s3kIp

密码:pqi6

相关文章

  • 逆向工程HelloWord《逆向工程核心原理》

    最近看了《逆向工程核心原理》第二章分析最著名的程序——HelloWord 本人也是小白,再次分享一下学习过程: 首...

  • VB逆向知识点记录

    新建了一个新的文集《逆向工程》,开启新的篇章。春节假期在家看了《逆向工程 核心原理》,里面第8章是关于abex' ...

  • 第1章 关于逆向工程

    1. 逆向工程 逆向工程(Reverse Engineering,简称PE). 2. 代码逆向工程 代码逆向工程(...

  • 内嵌补丁

    逆向工程核心原理--->内嵌补丁 参考:https://blog.csdn.net/ski_12/article/...

  • ssm

    工程目录结构 mybatis逆向工程 逆向工程配置文件 generatorConfig.xml文件 逆向工程代码 ...

  • ssm

    mybatis逆向工程 逆向工程配置文件 generatorConfig.xml文件 逆向工程代码 测试类(可以在...

  • iOS逆向工程之fishhook

    iOS逆向工程之fishhook iOS逆向工程之fishhook

  • iOS逆向工程之Theos

    iOS逆向工程之Theos iOS逆向工程之Theos

  • 一 iOS 逆向工程概述

    1 什么是iOS逆向工程 2 iOS逆向的目的 3 iOS逆向过程以及方法 一 什么是iOS逆向工程 iOS逆向...

  • iOS逆向工程之给App脱壳

    iOS逆向工程之给App脱壳 iOS逆向工程之给App脱壳

网友评论

      本文标题:逆向工程HelloWord《逆向工程核心原理》

      本文链接:https://www.haomeiwen.com/subject/nekmnxtx.html