CE_step9血量基址及變化規律?

Tags: 血量, 基址,

CE是專門的內存編輯軟件,在自帶的教程step9中,是2組人減血遊戲。在這裡,不介紹如何玩贏這個遊戲,只是想介紹一下如何找內存基址。話不多說,直接上圖。

工具/原料

CE

方法/步驟

這是step9的界面:

CE_step9血量基址及變化規律

在CE中選定程序的程序

CE_step9血量基址及變化規律

搜索值498

CE_step9血量基址及變化規律

點擊altack,值變成497,再次搜索

CE_step9血量基址及變化規律

返回的列表中,只剩下唯一的一個地址了,雙擊該地址,加到入列表。

CE_step9血量基址及變化規律

找出什麼是寫這個地址:

CE_step9血量基址及變化規律

找到的指針是:05259F60

CE_step9血量基址及變化規律

因為指針是某塊內存的值,所以,搜索該指針所在的地址:

CE_step9血量基址及變化規律

返回2個內存地址,現在先測試第一個,方法同上,先把該地址加到列表中,再後選擇是什麼該問了該地址:

CE_step9血量基址及變化規律

找到的地址是003349A0,再重複以上步驟:

CE_step9血量基址及變化規律

這次返回了81個地址,這麼多地址,如果一個一個試,就太費時間了。先看一下有沒有基址(顏色是綠色的)。在圖中,找到一個基址,我們試著添加指針,看看結果。

CE_step9血量基址及變化規律

記著偏移量和基址地址:

CE_step9血量基址及變化規律

偏移量是怎麼來的呢?上面的每步找地址的步驟,都有一個結果,看下圖:

CE_step9血量基址及變化規律

添加完指針後,看看結果值:

CE_step9血量基址及變化規律

值明明是495,怎麼指針值卻是1140293632呢?我們把495改成100,看看指針值有沒有變化:

CE_step9血量基址及變化規律

把495改成100後,指針值變成了1120403456,看來實際值跟指針值是存在對應關係的。現在要做的,就是把這種對應關係找出來。下圖是1-25值與之對應的指針值:

CE_step9血量基址及變化規律

分析一下,就可以注意到,指針值的變化是有規律的:指針差存在次數規律。根據這種規律,用python寫成代碼,就能實現值與指針的一一對應。代碼如下:

[[email protected] ~]$ cat while.py

#!/usr/local/bin/python3.3

fast_long=1065353216

fast_short=8388608

loop=1

step=1

while loop <=1000:

for x in range(step):

print(str(int(fast_long))+' '+str(loop)+' '+str(int(fast_short)) + ' '+ str(x))

fast_long+=fast_short

loop+=1

step*=2

fast_short/=2

[[email protected] ~]$

下圖是運行結果:

CE_step9血量基址及變化規律

現在隨便找個值測試一下:先把值改為1010,看看指針值是多少?

CE_step9血量基址及變化規律

1010對就的指針值是1149009920,看看剛才程序的結果:

CE_step9血量基址及變化規律

看來結果完全一致,至此,大功告成。本文主要介紹了找內存基址,及如何分析指針值與實際值的對應規律。

相關問題答案