首页 > 其他分享 >2.5 CE修改器:寻找数值指针

2.5 CE修改器:寻找数值指针

时间:2023-11-13 09:00:45浏览次数:37  
标签:汇编 修改器 CE 改变 地址 数值 内存地址 2.5 指针

上一步阐述了如何使用代码替换功能对付变化位置的数据地址,但这种方法往往不能达到预期的效果,所以我们需要学习如何利用指针,在本关的Tutorial.exe窗口下面有两个按钮,一个会改变数值,另一个不但能改变数值而且还会改变数值在内存中存储的位置。接下来我们将找到内存中的基址,为什么要找指针,在前面的教程中,如果各位细心观察的话就会发现 在笔者截图中的出现地址和你的地址并不相同。也就是说,这些地址是一直在变化的,我们把它叫做动态地址,我们必须寻找到该动态地址的基址,并以此来保证唯一性。

在本关的 Tutorial.exe 窗口下面有两个按钮,一个会改变数值,另一个不但能改变数值而且还会改变数值在内存中存储的位置。这一步,你不需要懂得汇编,但如果懂的话会很有帮助。

  • 首先找到数值的动态内存地址,然后再 [找出是什么改写了这个地址]。
  • 再次改变数值,CE便可以列出找到的汇编代码。 双击一行汇编代码(或选择它并点击 "详细信息")会打开 [详细信息] 窗口以显示详细的信息。
  • 查找方括号内的汇编指令集,寻找到偏移地址,并继续搜索地址,依次寻找下去知道找到绿色基地址位置。

首先第一步,读者应该使用精确数值扫描功能寻找到特定的一个内存地址空间,如下图所示则是动态内存地址空间;

接着第二步则是通过在内存地址处,鼠标右键选择是什么改写了这个地址,并再次让内存地址发生改变,如下图所示;

至此读者通过双击打开mov [edx],eax则可看到当前汇编指令的详细输出情况,寄存器EDX后面并没有任何偏移地址,此时读者只需要关注EDX寄存器的值,因为该值保存有指向下一个区域的内存地址,将地址01A252A8复制到剪辑版中;

将新地址以十六进制格式搜索四字节,并可输出一个绿色的"Tutorial-i386.exe"+2566B0没错,该地址就是一个基地址,此地址在程序重启后也不会发生任何的变化。

此时读者可以将该地址添加到底部的选择框中,点击选择空中的手动添加地址并选中添加偏移为0,即可动态得到当前的内存地址,如下图所示;

但需要注意的是,此处的指针为什么需要使用0呢,如果汇编指令中的方栝号里存在计算(例如:[esi+12])则需要把数值部分填在"Offset (Hex)"的文本框中,如果不存在则让它保持为0。

如果看上去是更复杂的计算指令的话(举例说明):[EAX*2+EDX+00000310] eax=4C 并且 edx=00801234 。

这种情况下EDX便是数值的指针,而EAX*2+00000310则是它的偏移量, 所以你要填在"Offset (Hex)"的将是2*4C+00000310=3A8

回到教程,点击"确定"这个地址便会加到 CE 主窗口下方的地址列表中,如果没做错,在地址栏将显示 P->xxxxxxxx,而 xxxxxxxx 和你扫描到的地址数值是一致的,如果不一致,那么可能是哪里出错了。
现在, 改变那条指针地址的数值为 5000 并锁定它,然后点击 Tutorial.exe 窗口上的"改变指针"按钮,如果一切正确,"下一步"按钮将变为可点击状态。

标签:汇编,修改器,CE,改变,地址,数值,内存地址,2.5,指针
From: https://www.cnblogs.com/LyShark/p/17828417.html

相关文章

  • 2.6 CE修改器:代码注入功能
    从本关开始,各位会初步接触到CE的反汇编功能,这也是CE最强大的功能之一。在第6关的时候我们说到指针的找法,用基址定位动态地址。但这一关不用指针也可以进行修改,即使对方是动态地址,且功能更加强大。代码注入是将一小段你写出的代码注入到目标进程中并执行它的技巧。在这一步教程中,你......
  • 【低功耗蓝牙BLE-2】Generic Access Profile(GAP)协议
    原文链接:https://zhuanlan.zhihu.com/p/527434096?utm_id=0 GAP简介通用访问配置文件(GAP)规定了设备在较低级别如何执行控制程序,如设备发现、连接、安全建立等,以确保互操作性,并允许来自不同供应商设备之间的通信。主要的操作有:发现并与配对广播数据建立安全连接GAP以一......
  • 图片转Excel的python小工具
    安装软件:pipinstallcvpipinstallpaddlepaddle pipinstallpandas-ihttps://pypi.douban.com/simple pipinstallpaddleocr==2.6.0.2-ihttps://pypi.tuna.tsinghua.edu.cn/simplepipinstallpaddleocr paddleocr-2.7.0.3-py3-none-any.whl 代码: pic2Excel.......
  • 在CentOs 7 下的Linux基本操作(一)
    1.目录操作(1)创建目录创建单个目录用mkdir,创建多级目录门mdkir -p  (2)查看目录查看当前目录用pwd   查看实际工作目录用 pwd -P 注意该P为大写  ......
  • excel对比两个文档,判断范围内的取值是否在另一个列表内存在(vlookup函数的使用)
    背景:sheet1表为原始数据:sheet2表为新的数据副本,目标是查询sheet2列表中是否存在sheet1表的数据,并且标记出来,且获取sheet2列表的一些数据至sheet1列表中,补充D与E两列的数据情况: 一、vlookup函数介绍:作用:垂直查找(按列号查找)函数说明:vlookup(lookup_value,table_array,col_......
  • 如何解决Windows电脑 Create folder error,Access is denied.
    如何解决Createfoldererror,Error:mkdirC:\ProgramFiles\nodejs\21.1.0/:Accessisdenied.Waring:Name:http://npm.taobao.org/mirrors/node/v21.1.0/win-x64/node.exeCode:-2Error:Createfoldererror,Error:mkdirC:\ProgramFiles\nodejs\\21.1......
  • 解决javax.persistence.RollbackException: Transaction marked as rollbackOnly Ask
    解决javax.persistence.RollbackException:TransactionmarkedasrollbackOnlyAsk在使用JavaPersistenceAPI(JPA)进行对象关系映射(ORM)的Java企业应用中,经常会遇到javax.persistence.RollbackException异常,其中的错误信息为"TransactionmarkedasrollbackOnly"。这......
  • A Learning Method for Feature Correspondence with Outliers读书笔记
    ALearningMethodforFeatureCorrespondence withOutliers------2022年论文地址:ALearningMethodforFeatureCorrespondencewithOutliers|IEEEConferencePublication|IEEEXplore背景:SuperGlue在许多现实任务中取得了优异的性能,但在处理离群特征方面仍然存在问......
  • 31.random.choice()函数
    生成电脑的随机选择:使用random.choice函数从一组选项中随机选择电脑的出拳选项,将选择存储在另一个变量中print('猜拳游戏开始:')player=input('请出拳(石头/剪刀/布):\n')computer=random.choice(['石头','剪刀','布'])print(f'电脑出拳:{computer}')ifplayer==compu......
  • MATLAB将数据写入Excel表格并添加表头
    MATLAB中写入Excel表格的函数为:xlswrite(filename,data,sheet,Range)其中的函数参数如下:filename:文件名,可以是绝对路径也可以是相对路径data:写入表格文件的数据sheet:写入的工作表,指的是sheet1、sheet2或者自己命名的工作表Range:写入的单元格区域,比如A4,指的是从A4开始写入数......