Android 台灣中文網

標題: 硬改不是辦法,軟改才是王道 [打印本頁]

作者: mylover80    時間: 2013-12-14 17:38
標題: 硬改不是辦法,軟改才是王道
經過這次4.0改版,明顯地顯示官方在對付硬改(用八門改運行中的記憶體)方面下了重藥,利用了兩個新class(一個每次更新地址,另一個放隨機值)及了bitwise xor方法"加密",使得硬改變得很困難。由於不是每個值都那樣處理,有些改動暫時還可以的,但如果日後需要,很容易的就可以用樣手法處理。

對付這一招,軟改(改程式)就最適合了。事實上,在C#(IL)的層面上,根本可以無視class裡面的運作,所以只要把將掉進class裡的值直接改掉便完成了,想改甚麼就放甚麼,無須計算,也無須每次搜尋,方便得多。

作者: skater1214    時間: 2013-12-14 17:42
那軟改有方法嗎= =?
說的好深奧  在下真的不是很了解
作者: lotihung    時間: 2013-12-14 17:42
這對於不會程式的人來說比較吃力
作者: av53770    時間: 2013-12-14 17:44
太深奧了。
作者: carebear    時間: 2013-12-14 18:01
聽下去真的很有水準的說話,雖然我相信有大半數的人根本不知道你在說些什麽
就為你這個超水準的技術性文章給你個贊
作者: ms0593823    時間: 2013-12-14 21:11
那要反加密  是不是需要  x^y=現有的數 的x y 值?

還是說 要把它提出來反編譯?
作者: nn54nn540    時間: 2013-12-14 21:30
你在講甚麼我根本聽不懂 .....  好深的話~
作者: spigbbbbb    時間: 2013-12-14 22:04
做到這個程度我相信大部分人都做不到,樓主可以放個測試版出來看看?
作者: jon0311tw    時間: 2013-12-14 22:06
大大你能講白一點嗎 小的聽不懂
作者: shiow620412    時間: 2013-12-14 22:07
如果要這樣改的話
很多人都不會改吧
能否請大大放一個測試版出來看看??


你講的好深奧阿@@
作者: acoqqoqq    時間: 2013-12-14 22:20
光看數字就知道是有加密過的了  官方真的來硬的
作者: qqq機機機    時間: 2013-12-14 22:44
這個就好像網路在賣的外掛一樣直接將程式寫入dat檔因該是不對請糾正樓下請接
作者: smartapc    時間: 2013-12-14 22:45
改了數值那些,可是傳出的資訊還是有還是有被抓到的風險
作者: awd851208    時間: 2013-12-14 22:51
這麼說是沒錯, 遊戲防外掛 防越兇  單一個 單純的 八門神器 根本 過不了 , 八門神器 能跟 CE 那一類的 修改器比嗎?    遊戲每一次更改 只會更加嚴立 絕不寬鬆  軟改 說的簡單 但是 要改 遊戲內容 可就不簡單
作者: ken1221110    時間: 2013-12-15 00:24
可是xor不是用在2進位的嗎. 我看記憶體都是16進位的
作者: monoboy1336    時間: 2013-12-15 01:12
不是那麼容易的~如果大大會 也請大大分享大家一起歡樂!
^O^
作者: doniface    時間: 2013-12-15 01:25
那個...我幫樓主講白話一點

意思就是: 直接修改神魔的程式, 然後把它打包成apk給大家下載更新(俗稱補丁), 然後你根本不需要八門甚麼想要的修改通通都會有 這樣大家是否比較明白?

缺點是:要有人知道怎麼改, 而且MH只要一更新版本馬上就不能玩, 總之就是官方跟改程式的人在角力
作者: p220fhf    時間: 2013-12-15 01:30
倒不如直接修改data?
不過據我的觀察,data不是在手機,而是在server.
如果有玩過p&d而會改檔的人會明白.

作者: william8888    時間: 2013-12-15 01:56
ken1221110 發表於 2013-12-15 00:24
可是xor不是用在2進位的嗎. 我看記憶體都是16進位的

在記憶體看是 xor 後的結果, xor 是編程用言法之一.


作者: 三蘆小K    時間: 2013-12-15 02:33
什麼???
看不懂.....
有詳細解說嗎??
作者: zxc9286695    時間: 2013-12-15 02:47
ken1221110 發表於 2013-12-15 00:24
可是xor不是用在2進位的嗎. 我看記憶體都是16進位的

電腦(包含手機)只看得懂二進制
就像寫原始碼用邏輯式(XOR)
而最後輸出要經過編譯器
小弟大一菜鳥  有錯或說的不好麻煩糾正補充
作者: 7439dp    時間: 2013-12-15 07:10
謝謝大大分享大家一起歡樂....
作者: 陳培元    時間: 2013-12-15 07:15
您真內行(X
作者: sonic1107    時間: 2013-12-15 07:17
虽然不知道你讲的什么意思,不过好像很厉害的样子。
作者: ayuan2011    時間: 2013-12-15 07:54
本帖最後由 ayuan2011 於 2013-12-15 07:59 編輯

這我在3.0改版時已經講過了
從官方開始把隨機值加密後 直接修改記憶體就已經變調了
一切只是MH要不要封起來而已
這次4.0只是做得更徹底
不是我愛吐槽這個討論版
看看3.0改版到4.0這之間 板上囂張的情形有多誇張 MH怎麼能不怒
連GM都給你置入無限lag迴圈 想用SL大法都沒辦法
別以為自動轉偵側不到  路徑過多就有問題 上不了排行榜就知道了 MH只是睜一隻眼閉一隻眼
畢竟羊毛出在羊身上 程式碼是他們寫的 我們只能追著人家跑
直接修改只會越來越複雜 除非有哪位高手能直接修改程式碼 直接開掛了
但這根本不是這個版上大部分人會的方法

想解鎖就留給那些享受解鎖樂趣的人去動腦吧
想享受遊戲的 就好好練練卡片比較實在 修改越來越麻煩 等你一步一步改完 人家都過關了
作者: qaz8031852wsx    時間: 2013-12-15 09:01
意思是直接改apk安裝檔?
作者: kivencco    時間: 2013-12-15 12:07
看來應該需要反組譯apk檔來改了
不過我還是比較想要找出怎麼改才可以讓Genymotion可以跑,
根據某大大曾經提到跟Timer有關?!
看來要搞到會,目前的我還有一段路要走XD!




作者: b3326023    時間: 2013-12-15 12:24
看不懂+1
作者: p220fhf    時間: 2013-12-15 12:59
反編沒有用,data不是在apk/手機.
作者: ru486    時間: 2013-12-15 13:18
如果真如您所想像得如此簡單(這不是單機版..=_=)
對岸一堆神人早就付諸實行,發出解鎖 apk 的版本(諸如  免金錢啦、免耗費體力啦、免鑽石啦....等等等等)
何須一直用八門下去改記憶體的部分
您真的是......想太多了。
作者: mylover80    時間: 2013-12-15 13:19
p220fhf 發表於 2013-12-15 12:59
反編沒有用,data不是在apk/手機.

不是想改永久data(金錢,經驗),只是想改當前戰鬥用的數值(生命、combo)或邏輯(例如使敵人的共生技失效)。
作者: laikyo    時間: 2013-12-15 13:27
硬改的定義不是這樣
你想說的應該是直接修改整個CLIENT端
作者: p220fhf    時間: 2013-12-15 13:32
mylover80 發表於 2013-12-15 13:19
不是想改永久data(金錢,經驗),只是想改當前戰鬥用的數值(生命、combo)或邏輯(例如使敵人的共生技失 ...

改檔,不就是直接改怪的三圍?
作者: mylover80    時間: 2013-12-15 13:57
p220fhf 發表於 2013-12-15 13:32
改檔,不就是直接改怪的三圍?

不是直接改怪的。舉個例,怪的攻擊是1000,現在的生命是800,那麼致死的原因是800-1000=-200=死亡。

程式(簡化版)是這樣:hp=hp+damage; (現在hp=800,damage=-1000)
假如改成 :if (damage<0) damage=-1; hp=hp+damage;

那麼無論受到怪的甚麼類型攻擊,血都只會少1。
作者: smartapc    時間: 2013-12-15 14:22
mylover80 發表於 2013-12-15 13:57
不是直接改怪的。舉個例,怪的攻擊是1000,現在的生命是800,那麼致死的原因是800-1000=-200=死亡。

程 ...

這樣的問題還是傳到SERVER端的數值會被檢測出來,官方只要一BAN就沒得玩了.而且這種SERVER端很好檢測.

不過如果可以修改C#層,那不如連戰鬥都不用打了,直接拖機外掛,數據封包都送假的,不過要怎麼假造到合理,做修改的人應該要很了解神魔
作者: mylover80    時間: 2013-12-15 14:30
smartapc 發表於 2013-12-15 14:22
這樣的問題還是傳到SERVER端的數值會被檢測出來,官方只要一BAN就沒得玩了.而且這種SERVER端很好檢測.

不 ...

SERVER端未必會檢測到,因為回傳的數據(如maxdamage, minhp等)是從最後的damage(加上全部效果)計算出來以後才計的,以上舉例的改法的damage終值是"合法"的,所以除非SERVER把所有卡片所有效果及所發生的事情全部回傳(以我所知沒有),所以我相信難以計出準確數值(當然,把damage全改成1是太極端了)。

作者: 吳祐華    時間: 2013-12-15 14:41
之前就有想過看了很久找不到對應的smali就更新了 而且數字出來還是異常如果只是想讓server不知道你開修改器根本不虛要這麼麻煩
作者: p220fhf    時間: 2013-12-15 15:13
mylover80 發表於 2013-12-15 13:57
不是直接改怪的。舉個例,怪的攻擊是1000,現在的生命是800,那麼致死的原因是800-1000=-200=死亡。

程 ...

為何要這樣?
直接修改要上傳的數據,不是更好?
作者: xiong7799s    時間: 2013-12-15 15:57
大大不知道可以舉例一下嗎
作者: wayne12352    時間: 2013-12-15 16:25
我聽得懂
但我做不到= =
作者: mylover80    時間: 2013-12-15 17:29
p220fhf 發表於 2013-12-15 15:13
為何要這樣?
直接修改要上傳的數據,不是更好?

直接修改要上傳的數據當然也可以,不過由於數據太多,也要前後呼應,倒不如只改一句(如上例),其他數據就會根據本來程式產生出來。
作者: smartapc    時間: 2013-12-15 23:03
mylover80 發表於 2013-12-15 14:30
SERVER端未必會檢測到,因為回傳的數據(如maxdamage, minhp等)是從最後的damage(加上全部效果)計算出來以 ...

回傳的東西有每回合HP量,被怪K的量,回覆量

如果如果HP沒什變,怪K很痛,回覆量很少,肯定被抓包@@
作者: p220fhf    時間: 2013-12-15 23:16
mylover80 發表於 2013-12-15 17:29
直接修改要上傳的數據當然也可以,不過由於數據太多,也要前後呼應,倒不如只改一句(如上例),其他數據就 ...

所以說神魔除了不認抄,其他都係很好,包括防外掛==
相比於p&d,p&d很好改.直接改檔就可以了.
作者: 0922234011    時間: 2013-12-15 23:33
解釋
1.假設值是10
2.經過class的加密[浮點隨機]
3.你搜尋到的可能會是1.2345E234
4.數據回傳比對判別

所以感覺上 不能改了 或 改了很容易出事

但軟改的意思就是在進入加密之前就改掉了
所以加密變得一點意義都沒有

不過樓主....重點在於 時間&成本 阿 要真的很有""才可以阿 = =

真心話 : 除非收費 否則這樣做 不划算~

作者: william8888    時間: 2013-12-16 01:16
mylover80 發表於 2013-12-15 14:30
SERVER端未必會檢測到,因為回傳的數據(如maxdamage, minhp等)是從最後的damage(加上全部效果)計算出來以 ...

算吧, 這裡的人不太懂得編程, 事實上大多數運算跟本都在 client 端, 只要在 client 端修改便可, 不過前提要反編譯和找出相對運算 function.

老實說, 除非能 "hack" 入得到源碼, 否則, 反編譯亦未能完全成功找出想要修改的地方

其實若果真的用 bitwise xor, 只要找出這段再將 "seed" 修改為 0, 所有資料會無所遁形.
作者: sgcba154035    時間: 2013-12-17 02:37
提示: 作者被禁止或刪除 內容自動屏蔽




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1