吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5097|回复: 12
收起左侧

[分享] 调试逆向基础知识二

  [复制链接]
T_MAC仔 发表于 2016-11-17 10:35
调试逆向基础知识二目录1.修改内存值得两种方法2.大端小端表示方法的区别
环境配置:和调试逆向基础知识一种配置相同
第一部分:修改内存值的两种方法修改方法:1.在原值的内存地址中进行修改2.重新开辟一块内存地址,修改原先的内存地址指向新的内存地址#include<stdio.h>#include<windows.h>int main(){    MessageBox(NULL,                "Hello World",                "www.baidu.com",                MB_OK        );    return 0;}1.在原值的内存地址中进行修改
修改前如图1:

修改后如图2:

一:在原值的内存地址中进行修改
按照调试逆向基础知识一中方法直接找到主函数的EP(EntryPoint 函数入口地址)如图三:

如图所示此时调试指令停留在地址00411380 处
此时我们用鼠标将光标移动到地址 004113A7 处 此时在信息窗口会看到:
0041573C=MessageB.0041573C (ASCII "Hello World")
此时我们选中数据窗口 按快捷键Ctrl+G 输入地址0041573C 如图所示4:

点击ok 后会出现如图5:

如图所示在地址0041573c 地址处选中 从00415742~0041574B 选中后按快捷键 Ctrl+E 进行编辑如图6:

由于 MrDJ 对应的分别为:
M r D J
DEC: 77 114 68 74
HEX: 4D 72 44 4A
所以只需要在编辑框中 一次输入 4D 72 44 4A 即可如图7:

输入完成后直接按快捷键F9 运行即会出现如图二所示情景
如果需要对可执行文件的修改进行保存步骤如下:
单击鼠标右键选择复制至可执行文件 ->接着在弹出的窗口中右键选择保存可执行文件->接下来就是对保存路径以及对保存的文件名的选择啦
此方法的优劣:优:1.操作简单(1.主要体现在不用修改CPU 中的汇编代码2.直接修改内存中的值即可完成要求)劣:1.容易篡改系统文件以及部分本程序中的重要文件(主要由缓冲区的大小做决定)什么时候采用此种方法?    当程序中需要改动的部分很少时    当缓冲区足够大时(以修改后不影响程序的正常运行为准)2.重新开辟一块内存地址,修改原先的内存地址指向新的内存地址修改方法:1.重新开辟一块内存用于保存字符串2.改变消息函数参数指针的指向,使其指向新开辟的内存地址
如图八所示:

1.向MessageBoxA() 函数传递的四个参数中 “Hello World”这个字符串是我们关注的也是我们需要进行替换的的,由图8可知向MessageBox()传递的是数据的首地址 004113A7 因此我们只需要改变此地址为我们自己字符串的首地址就可以啦
2.在数据窗口中,向上翻看如图9所示:

从图9可以看出 地址00415000 地址处为空 因此我们选中后按快捷键 Ctrl+E如图10 所示

完成以后只需要将图八中的 地址 004113A7 出的汇编指令进行修改即可 首先光标选中后按空格键如图11所示:

接着按F9 运行即可 如图12

完美运行
方法的优劣:优:1.不用担心缓冲区长度,字符串长度问题2.可控性比较好劣:1.只能一次运行(重新载入此程序仍需要修改才能达到效果)2.对操作有要求,需要修改汇编指令什么时候用到此方法:替换的字符串比较长的时候用此方法比较好2.大端小端显示方法的区别
···
字节序:是计算机内存中存储或网络传输时各字节的 存储顺序
主要分为大端序,小端序
···
简单点说(以 123456为例)
小端显示法:小端:563412(内存低位存储数据低位)
大端显示法:大端:123456 (内寸低位存储数据高位)
常见的intel32 即采用小端显示法
小结
1.本节只是从原理上讲解,通过列举简单的例子向大家证明两种方法
2.大端小端序 要明白常用的设备采用的字节序
3.闲暇时可学习有关PE的知识,进一步了解程序的内存变化

免费评分

参与人数 5吾爱币 +1 热心值 +5 收起 理由
Ch3cK_P01NT + 1 + 1 谢谢@Thanks!
Hmily + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
行者无道 + 1 我很赞同!
h080294 + 1 用心讨论,共获提升!
zpfttkl + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

行者无道 发表于 2016-11-23 12:18
谢谢老师分享,不知道什么情况,有几处的图片打不开,一直打转,打不开,看不到,能不能讲讲内存赋值,还有补码方面的知识呢,你讲的第二个,修改了无法保存的话,比方有些调试需要修改内存,那么如何定位到写入内存的地址,同时能对赋值进行补码,谢谢
 楼主| T_MAC仔 发表于 2016-11-17 10:36
调试逆向基础知识三
会和大家分享关于堆栈的一些知识。
大家有建议或者疑问的请直接提出来呦
QNLY 发表于 2016-11-17 10:48
fengxunzhe 发表于 2016-11-17 10:51
支持原创
imtom123 发表于 2016-11-17 11:13
学习了~推好文
 楼主| T_MAC仔 发表于 2016-11-17 12:24
刚看出来这个排版有点问题 实在不好意思,,下次直接带附件一块上传给大家
大叔很忙 发表于 2016-11-20 11:21
好厉害的样子
wt7758521888 发表于 2016-11-20 12:57 来自手机
不错好厉害
fengh 发表于 2016-11-22 19:15 来自手机
学习中继续跟
xiaodouble 发表于 2016-11-22 19:32
支持一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 11:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表