大发在线娱乐登入:逆向工程,调试Hello World !程序(更新中)

本文地址:http://ilh.ib776.com/bits_stdc/article/details/105978657
文章摘要:大发在线娱乐登入,武者排名次命啊不只是玄正鹤,已经潜伏起来了想到今日更新第一已发。

逆向分析法

大发在线娱乐登入:静态分析法

是在不执行代码文件的情形下,对代码进行静态分析的一种方法。并不执行代码,而是观察代码文件的外部特征,获取文件的类型,大小,PE头信息,内部字符串,是否运行时解压缩等。

动态分析法

是在程序文件的执行过程中对代码进行动态分析的一种方法,它通过调试来分析代码流,获得内存的状态等。
虽然代码调试过程在代码逆向分析过程中占据很大比重,但它只是代码逆向分析的一个从属概念

调试hello world 程序

代码

#include "windows.h"
#include "tchar.h"

int _tmain(int argc, TCHAR * argv[])
{
	MessageBox(NULL,"Hello World!","张轩瑞",MB_OK);
	return 0;
}

开始调试

用OllyDbg调试工具打开程序
左上 代码窗口

  • 默认用于显示反汇编代码,还用于显示各种注释、标签,分析代码时显示循环、跳转位置等信息。

右上 寄存器窗口

  • 实时显示CPU寄存器的值,可用于修改特定的寄存器。

左下 数据窗口

  • 以Hex/ASCII/Unicode值的形式显示进程的内存地址,也可在修改内存地址。

右下 栈窗口

  • 实时显示ESP寄存器指向的进程栈内存,并修改。

OllyDbg 基本指令 (适用于代码窗口)

项目 Value 含义
Restart Ctrl+F2 重新开始调试
Step Into F7 执行一句OP code (操作码),若遇到调用命令(CALL),将进入函数代码内部
Step Over F8 执行一句OP code (操作码),若遇到调用命令(CALL),仅执行函数自身,不跟随进入
Execute till Return Ctrl+F9 一直在函数代码内部运行,直到遇到RETN命令,跳出函数

设置断点的四种方法

1.goto 命令

执行Go to(Ctrl + G) 命令,打开一个“输入跟踪表达式”的对话框。
在文本框中输入“地址”。

光标自动定位到该地址处,执行F4命令,让调试流运到此处,然后从该处调试。

2.设置断点

可以设置BP(Break Point,断点) (快捷键F2)


设置断点后,运行到断点处就会暂停。
可以打开Breakpoints框(ATL+B)查看设置的断点。

双击某个断点会直接跳转到相应位置。

3.注释

按键盘上的“;”可以添加注释

同时也可以查找到他。

4.标签

我们也可以通过标签提供的功能在指定地址

比如在00401BF0中设置标签,main func
因为00401385处调用00401BF0的函数,所以就会显示,main func


标签和注释一样也可以检索

快速查找指定代码的四种方法

调试代码时,main()函数并不直接位于可执行文件的EP位置上,出现在此的是开发工具生成的启动函数。
(EP是windows可执行文件(EXE,DLL,SYS等)的代码入口点,是执行应用程序时最先执行的代码的起始位置,它依赖于CPU。)

1. 代码执行法

逐条执行指令来查找需要查找的位置。代码执行法仅使用于被调试的代码量不大、且程序功能明确的情况。

2.字符串检索法

直接查找字符串。
寻找所需要的字符串,然后双击。

3.在调试代码中设置断点

查找->所有模块间的调用
查看调用了那些函数

4.在API代码中设置断点

打开“所有模块中的名称”并敲下MessageBox,光标会直接定位。

使用“打补丁”方式修改“hello world!”字符串

修改字符的两种方法

1.直接修改缓冲区

我在搜索的时候,发现注释hello world的地方更改没有用。
找到主函数后,设置断点。
然后按F4,进行调试。
在右下方站窗口找到ASCII码“hello world”。

然后双击查看,进入数据窗口,去更改缓存区。

去更改,hello world 改成 hello rever
尽量不要用更长的字符串,覆盖原字符串,这样会使数据遭到破坏。
改完之后,去运行程序,之后就会弹出窗口。

我们发现以前的hello world 变成了 hello rever。

保存更改到可执行文件

上面的调试中,我们通过修改字符串缓冲区更改了程序显示的消息内容,但是这种更改只是暂时的,我们终止调试的时候。程序中的原字符串没有改变。如果想保存下来,就要把更改后的程序保存一个可执行文件。

  • 在左下数据窗口中,选中更改后的字符串,点击鼠标右键,在弹出的菜单中选择“复制到可执行文件”,然后点击“备份”——>“保存到数据文件”然后输入文件名保存为exe文件。

当我们打开这个已经保存好的文件的时候,弹出的字符串变成了“hello rever”。

2.在其他内存区域新建字符串并传递给消息函数

更新中。。。。

??2020 CSDN 皮肤主题: 游动-白 设计师: 上身试试 首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

永利证券官方网站登入
hg平台娱乐城登入 新2网址有哪些登入 葡京重庆时时彩q群 太阳城游戏网址大全澳门赌场 OG东方馆游戏直营网官方网
澳门一天游登入 大家旺线上娱乐 申博太阳城现金网开户游戏下载网上娱乐场 菲律宾申博SUNBET官网游戏下载登入 金沙巴黎人赌场
澳门太阳城官方现金网 申博太阳城正网管理网手机客户端下载登入 金木棉 果博18登入 盈丰国际赌博登入
博世界注册 澳门威尼斯订房电话 永利永利国际娱乐手机版 菲律宾申博最新地址现金网 180888真人登入