Android 內存修改與一鍵修改


內存修改使用trace對進程和內存實施監控,並修改其中的數值。


{
        //文本配置
        "TextConfig":{
                "GameName":"游戲名稱",//顯示之用
                "GamePackname":"Android包名",//游戲包名,否則無法識別游戲
                "GameVersion":"版本號",//游戲版本號,否則無法識別游戲
                "CfgName":"配置名稱",//給你的一鍵修改取一個霸氣的名字吧
                "CfgVersion": 1|2|3... //配置的版本編號,最開始為1版本,后續為2,3,4...
                "Author":"配置作者",//自己定義了配置,請留上你的大名
                "Discription":"配置簡述",//一鍵修改配置的使用攻略和注意事項
                "ButtonNameModification":"一鍵修改名稱",//默認一鍵修改
                "ButtonNameRecovery":"一鍵還原名稱"//默認一鍵還原
        },
        //搜索配置
        "SearchConfig":{
                "NeedToPause":true | false //布爾型,默認 true
                "SearchValueType":1|2|3|4 //整數型,默認4整數
                "SearchValue":"V1,V2,V3...", //字符串型,搜索數值V1,V2,V3,最多10個,單數值為精確搜索,多數值為聯合搜索
                "SearchRange": "10d", //整數型,其中L為10進制數字,0則不進行聯合搜索
                "SearchOffset": "16h",//偏移距離,16進制,用於雙精確等距/強聯合搜索,0則不進行強聯合搜索
        },
        //篩選-修改-還原配置
        "FilterSettingConfig":[        //篩選過濾配置,可以設置多個
                {
                        "FilterType":"Values" |"Address" //篩選類型,按值篩選/按地址篩選
                        "Offset":"16h"//偏移:字符串類型。表示16進制整數。默認為空。
                        "LastDigits":"16h"//末位數:一般為2~4位。
                        "SourceMatch":"10d", //原始匹配值。
                        "SetValueType":1|2|3|4, //設置的值類型。默認4整數型
                        "SetValueMethod":"equal"|"add",//設置的方法,equal為等值設值,add為差值設值。
                        "SetValue":"10d", //字符串型,設置的數值大小
                        "SetValueLocked": false|true //布爾型,默認false。是否需要鎖定數,默認不鎖定。
                },//配置1
                /*
                {
                        //
                        //
                        //
                }//配置2
                */
        ]
}

現在手機端也出現了一些有名的修改器,如燒餅修改器,八門神器,泡椒修改器。這些修改器都是純技術類型的修改器。其內核是建立Linux的搜索基礎之上的,早
期的燒餅修改器,八門神器,借鑒了開源代碼 scanmem 里結構,不過 scanmem 有一個缺陷,搜索速率非常低。比如 ptrace 來調試進程,單內存搜索。就好比我一次抓一把米,一把才1顆。這些修改器優化之后,改為1次抓1把米,1把2048顆米。平鋪在手上,可以篩選出顏色不同的米來。

再后來的過程,崛起了一個叫葫蘆俠的修改器,這個修改器有一個特點,搜索速度較快,可以理解的其使用了比 ptace 更為底層的接口 trace,甚至更底層。以至於搜索速度能夠達到秒的數量級。燒餅2的系列都是要通過ptrace來調試進程,並對進程進行搜索和修改。近期的一些游戲所做的反作弊手段就是通過黑名單,反調試來進行的。anti-ptrace是其中的一種反作弊手段,可是一旦用了更底層的攻擊技術,這項防御技術很單薄。



整個內存修改的過程可以分解為:

輸入數值->搜索數值->篩選數值->修改數值->還原數值

1、數值輸入:

輸入的數值可以為小數,整數。類型可以分為Byte, Word, Dword和Float,當然還有更多,比如Array,Text和Double等。這個可以在Cheat Engine里看到起搜索的類型。

2、搜索數值:

搜索方法很多,一共5種。

a內存搜索:這個很直接,直接輸入地址,搜索數值。

b精確搜索:間接,搜索具體的數值,然后找到目標內存地址。這個需要多次跟蹤搜索過濾掉合適的數值。

c模糊搜索:間接,不特定搜索。根據變化率來進行搜索。根據ΔV 的情況來進行搜索。比如為正,為負,定值來進行搜索。

d聯合搜索:介乎於精確。在一定的內存距離內進行數值搜索。linux里有頁的概念,因此這段內存距離會控制在2048里。

e等距搜索:即搜索A,B。指定A和B 的距離都為L。返回兩個A,B值。


幾個搜索方式的優劣比較:

a內存搜索:快速直接,但很難搜。不同的操作系統,搜索的地址是不一致的,有些動態生成的值,此方法不適合。

b精確搜索:直觀,搜索步驟較多,很難一步搜完。

c模糊搜索:復雜,搜索步驟較多,需要大量篩選數值。

d聯合搜索:較快,搜索步驟最少。

e等距搜索:最快,搜索步驟最少,可以查詢到搜索結果。

如果說要推薦意見修改,那么聯合搜索和等距搜索是最佳搜索方法。

3、篩選數值

a內存搜索:過濾結果只有1個。Nan或者有效。

b精確搜索:搜索結果不定,需要人工篩選。

c模糊搜索:搜索結果復雜不定,需要結合整數,小數的規律來進行過濾。

d聯合搜索:搜索結果很容易確定下來,不過如果距離過小,結果會過少。距離過大,搜索結果會變多。

e等距搜索:結果一般只有幾個。很容易搜索到。

4、修改數值

手動改值:找到指定地址,修改為需要的數值。

自動改值:每一幀率都在進行修改。也就是所謂的鎖定功能。

5、還原數值

手動改值:找到指定地址,改為需要的還原的數值。


一鍵修改的過程:

全自動

{
	"TextConfig":{
		"GameName":"天天飛車",
		"GamePackname":"com.tencent.game.SSGame",
		"GameVersion":"1.2.0.40317",
		"CfgName":"一鍵吸金",
		"Author":"bbe",
		"Discription":"每次開局,一鍵吸金,卡車之后還原再改",
		"ButtonNameModification":"吸金",
		"ButtonNameRecovery":"不吸金"
	},
	"SearchConfig":{
		"SearchValueType":4,//搜索類型為整數
		"SearchValue":"1077936128;1112014848,1", //聯合搜索3.0;50.0;1
		"SearchRange":"8"//設置距離為8
	},
	"FilterSettingConfig":[
		{
			"FilterType":"Values",
			"SourceMatch":"1",//匹配原始值1
			"SetValueType":4,
			"SetValueMethod":"equal", //等值設置值
			"SetValue":"257",//改為257
			"SetValueLocked":false//不用鎖定
		},
	]
}

在上面的這個配置里已經很明顯的設置了如何自動識別游戲包名,游戲版本名。如何搜索,如何自動篩選數值,如何自動修改和還原。

修改器自動運行一遍,就可以實現一鍵修改。


轉自:http://android.codemach.com/android-nei-cun-xiu-gai-yu-yi-jian-xiu-gai.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM