5.x86游戲實戰-CE定位基地址

免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動!

本次游戲沒法給

內容參考于:微塵網絡安全

上一個內容:4.x86游戲實戰-人物狀態標志位

上一個內容通過CE未知的初始值、未變動的數值、變動的數值篩選找到了人物的狀態標志

現在就有一個問題,游戲重啟之后,地址就會發生變化,變化了代碼也要同步改,這就很麻煩,它有沒有一個固定的地址?答案是有的,我們寫的java、c/c++等語言,到最后都會變成匯編語言,編譯好的匯編代碼不管游戲重啟還是操作系統重啟,它都不會變,然后既然游戲它重啟、操作系統重啟都可以正常找到人物狀態標志這個值,這說明這個值(內存地址)它肯定有一個固定的位置存放著,如果沒有固定的位置存放那么游戲它也不知道怎么找,知道這一點之后,那怎么找這個固定的值?請看下方VCR

首先打開CE

點擊下圖紅框,附加游戲

然后再次通過 未知的初始值、未變動的數值、變動的數值篩選找人物的狀態標志,找到之后鼠標右擊選擇是什么訪問了這個地址

然后就會有4個

然后可以看出都是一個數字加14C,

然后選中一個點反匯編

可以看到下圖紅框位置,mov eax,[00A107BC],這個意思是把A107BC是一個內存地址,[]的意思是把內存地址里放的值拿出來,mov 是賦值的意思,合起來就是把A107BC位置里放的值放到eax寄存器中

然后下圖紅框位置,mov eax,[eax+60],這個60是十六進制的60,肉眼可以看到的數字在沒有特出設定下默認所有工具里都是用十六進制顯示,然后eax+60,這意思就是[A107BC]+60,也就是從 A107BC地址里存放的值加60,加完60之后它又會是一個內存地址,然后通過[]eax+60這個內存地址中的值取出來放到eax中

然后下圖紅框位置cmp dword ptr[eax+14C],02,這意思是,ptr是地址的意思,dword是4字節數字的意思,dword ptr[eax+14c]的意思是eax+14c是一個內存地址,dword ptr的作用就是把內存地址的值轉成4字節數字,也就是從eax+14c開始往后讀4個字節,eax的值是通過上方mov得到的,eax轉成具體的數字[[A107BC]+60]+14c,然后到這還沒有解釋cmp,這個cmp是匯編指令(匯編代碼),可以百度cmp指令這個關鍵詞去搜(匯編代碼+指令 這樣的關鍵字組合去搜),這個cmp是比較的意思,然后cmp dword ptr[eax+14C],02中的這個02,就是比較[[[A107BC]+60]+14c] 是大于2還是小于2還是等于2,具體是大于還是小于取決去cmp下一行的代碼是什么(cmp只是單純比較,它會把等于、大于、小于全都給比較了,比較完會記錄下來,然后沒別的操作了,具體怎么用后面在說,現在就這樣理解)

然后上方得到一個[[[A107BC]+60]+14c] 這個,然后最開始說匯編代碼編譯完是不會變化的,然后剛開始有一個mov eax,[A107BC],這一句就是編譯完的代碼,它是不會變的,這里就有一個概念,這個概念叫做基址(基地址),A107BC就是基址,所以正確做法是通過基址+xx數字來得到我們想要的數據,這個xx數字有一個稱呼,叫做偏移

然后回到CE,點擊手動添加地址

勾選上指針

然后把 A107BC放進去

然后點添加偏移

然后如下圖,下圖的地址不管是游戲重啟還是操作系統重啟它都可以用,它都不會發生變化

然后寫的時候,數字前面最好加上0x,0x后面的數字會被當做十六進制數字,有些工具會默認以十六進制的方式讀,所以不加0x也可以,但是有的工具不加0x它就會當成十進制讀,所以最好加上0x

它的esi的值就無法那么輕松的看到,這種的要用動態調式工具,CE頂多搜索點內存里的數據,動態調式后面會寫


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37301.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37301.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37301.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習SVR 隨機森林 RBF神經網絡做回歸預測的MATLAB代碼

SVR 參考這篇文章 Libsvm使用筆記【matlab】 close all; clc clear %% 下載數據 load(p_train.mat); load(p_test.mat); load(t_train.mat); load(t_test.mat); %% 數據歸一化 %輸入樣本歸一化 [pn_train,ps1] mapminmax(p_train); pn_train pn_train; pn_test mapminma…

設置用戶訪問hdfs

如果hadoop沒有啟Kerberos或者從Kerberos獲取的用戶為null,那么獲取HADOOP_USER_NAME環境變量,并將它的值作為Hadoop執行用戶。如果我們沒有設置HADOOP_USER_NAME環境變量,那么程序將調用whoami來獲取當前用戶,并用groups來獲取用…

JVM相關總結

JVM的些許問題 1.JVM內存區域劃分 2.JVM類加載過程 3.JVM的垃圾回收機制 1.JVM的內存區域劃分 一個運行起來的Java進程就是一個JVM虛擬機,需要從操作系統申請一大片內存,就會把內存劃分成幾個區域,每個區域都有不同的作用 常見的面試題 2.JVM類加載過程 熟練背誦 ! ! !…

printf內幕----編程內幕(1)

曾幾何時,您有沒有在夜深人靜的時候想過一個問題,printf內部究竟做了什么?為何可以輸出到屏幕上顯示出來? 先看看這段熟悉的代碼: // // Created by xi.chen on 2017/9/2. // Copyright © 2017 All rights rese…

WordPress中文網址導航欄主題風格模版HaoWa

模板介紹 WordPress響應式網站中文網址導航欄主題風格模版HaoWa1.3.1源碼 HaoWA主題風格除行為主體導航欄目錄外,對主題風格需要的小控制模塊都開展了敞開式的HTML在線編輯器方式的作用配備,另外預埋出默認設置的編碼構造,便捷大伙兒在目前…

入門JavaWeb之 JDBC 連接數據庫

JDBC:Java Database Connectivity,Java 數據庫連接 需要 jar 包支持: java.sql javax.sql mysql-connector-java(連接驅動,必須導入) 在 MySQL 先建個 jdbc 數據庫后 USE jdbc; 執行后再 CREATE TABLE…

15- 22題聚合函數 - 高頻 SQL 50 題基礎版

目錄 1. 相關知識點2. 例子2.15 - 有趣的電影2.16 - 平均售價2.17 - 項目員工 I2.18 - 各賽事的用戶注冊率2.19 - 查詢結果的質量和占比2.20 - 每月交易 I2.21 - 即時食物配送 II2.22 - 游戲玩法分析 IV 1. 相關知識點 函數 函數含義order by排序group by分組between 小值 an…

Chrome備份數據

Chrome備份數據 1、 導出谷歌瀏覽器里的歷史記錄 參考:https://blog.csdn.net/qq_32824605/article/details/127504219 在資源管理器中找到History文件,文件路徑: C:\Users\你的電腦用戶名\AppData\Local\Google\Chrome\User Data\Default …

堆排序思想分享

人不走空 🌈個人主頁:人不走空 💖系列專欄:算法專題 ?詩詞歌賦:斯是陋室,惟吾德馨 目錄 🌈個人主頁:人不走空 💖系列專欄:算法專題 ?詩詞歌…

丟失的數字(MissNumber)

丟失的數字 給定一個包含 [0, n] 中 n 個數的數組 nums ,找出 [0, n] 這個范圍內沒有出現在數組中的那個數。 示例 1: 輸入:nums [3,0,1] 輸出:2 解釋:n 3,因為有 3 個數字,所以所有的數字都…

五、Pentium 微處理器保護模式存儲管理,《微機系統》第一版,趙宏偉

一、分段存儲管理 Pentium支持分段存儲管理、分頁存儲管理和段頁式存儲管理。 1.1 分段存儲管理的基本思想 一個程序由多個模塊組成。 每一個模塊都是一個特定功能的獨立的程序段。 段式管理:把主存按段分配的存儲管理方式。 程序模塊→段→段描述符→段描述符…

【設計】在Java后端開發時使用JSONObject完全替代JAVABean(DTO,VO)是否可行?

其實這樣做你是得不償失,不過也要看什么項目,如果你的項目只在只需要實現功能,不在乎健壯性,可持續性那就完全可以。因為我現在公司老項目所有用的POJO的地方都是用JSONObject。代碼可讀性幾乎為0。你用了可能喪失以下功能&#x…

【微服務】后臺管理項目多數據源管理方案實戰

目錄 前言 1、使用Spring提供的AbstractRoutingDataSource 2、使用MyBatis注冊多個SqlSessionFactory 3、使用dynamic-datasource框架 前言 Java后臺使用MyBatis-plus 快速訪問多個數 據源,這里分享三種常用的多數據源管理方案 1、使用Spring提供的AbstractRout…

【C++深度探索】繼承機制詳解(一)

hello hello~ ,這里是大耳朵土土垚~💖💖 ,歡迎大家點贊🥳🥳關注💥💥收藏🌹🌹🌹 💥個人主頁:大耳朵土土垚的博客 &#x1…

代碼托管服務:GitHub、GitLab、Gitee

目錄 引言GitHub:全球最大的代碼托管平臺概述功能特點適用場景 GitLab:一體化的開發平臺概述功能特點適用場景 Gitee(碼云):中國本土化的代碼托管服務概述功能特點適用場景 功能對比結論 引言 在現代軟件開發中&#…

numpy - array(3)

arr1 np.array([[(1000, 1001, 1002, 1003), (1010, 1011, 1012, 1013), (1020, 1021, 1022, 1023)],[(1100, 1101, 1102, 1103), (1110, 1111, 1112, 1113), (1120, 1121, 1122, 1123)]], dtypeint) (1) 根據坐標訪問元素或內容,更改訪問的內容,array也會更改。“…

C++操作系列(一):MinGW環境安裝與配置(無報錯版)

本文選擇MinGW作為安裝對象。 1. 下載MinGW 進入官網:MinGW - Minimalist GNU for Windows download | SourceForge.net 點擊File: 劃到最下面:  Windows 64位系統下載seh結尾的安裝包: 2. 安裝MinGW 解壓MinGW&am…

力扣第218題“天際線問題”

在本篇文章中,我們將詳細解讀力扣第218題“天際線問題”。通過學習本篇文章,讀者將掌握如何使用掃描線算法和堆來解決這一問題,并了解相關的復雜度分析和模擬面試問答。每種方法都將配以詳細的解釋,以便于理解。 問題描述 力扣第…

【CSS】深入理解CSS 的steps()函數

在CSS動畫中,steps()函數是一個時間函數,它主要用于animation-timing-function屬性,以定義動畫的步進方式。當你想要動畫的某個屬性(如background-position或transform: translateX())在特定的步驟之間變化時&#xff…

探索 ES6:現代 JavaScript 的新特性

隨著 JavaScript 的不斷演進,ECMAScript 2015(簡稱 ES6)作為 JavaScript 的一次重大更新,帶來了許多新特性和語法改進,極大地提升了開發體驗和代碼質量。本文將詳細介紹 ES6 的主要新特性,并展示如何在實際…