修改DLL檔案實現龍崖Dragon Cliff作弊

2021-10-08 12:22:43 字數 2022 閱讀 3092

因為steam打折所以入的這款遊戲,評價還是不錯的。入手之後感覺掛機的過程過於枯燥,卡關的感覺很難受,因此考慮使用修改器來讓這個遊戲變得「爽」一點。在網上沒有找到可用的修改器,但是發現了有關修改教程:

由於對於整個過程還是蠻有興趣的,並且希望完成遊戲的修改,因此開始了相應的嘗試。

因為遊戲的編寫使用的c#版本較高,reflect v8並不能對其完成解析,因此使用了當前最新的v10。

2、找到遊戲dll所在位置

3、開啟reflector並將該檔案拖入介面中

這就是需要對其進行修改檔案。

以修改等級判定(一般稀有史詩傳說遠古)為例,所在函式type:generationdistribution

member:getgrade

使用搜尋功能找到相關位置。

這便是生成隨機等級判定的函式(或者說品質更為合適)。主要是通過生成乙個隨機數,對其數值所在區間進行判定實現品質的隨機。以下是修改後的檔案,不論生成什麼數值都會返回qualitygrade.ancient。

public qualitygrade getgrade()

如果可以修改**就可以修改為返回遠古品質不需要再進行判定,很可惜的是不能完成相應的操作。因此使用tools——>reflexil來完成。

在instruction(指令)一欄中可以看到最終生成底層**,找到返回指令所在位置

這是修改過的檔案,ldc.i4.5所在位置便是該函式的返回值。將所有的返回值修改為遠古品質的值ldc.i4.5即可完成生成的英雄、居民以及製造的**均為遠古品質。

5、完成修改並覆蓋遊戲中的原檔案,以下為輸出方法

將生成的dll檔案覆蓋掉原檔案即可,如果對於操作沒有信心可以備份原檔案後進行覆蓋。如果遊戲報錯閃退可以將原檔案重新寫入後修改,或者使用steam中的「檢測遊戲完整性」功能來實現修復。

以下為遊戲中測試:

作用:等級判定(一般稀有史詩傳說遠古)

type:attributepotentialdescriptor

member:getmean

作用:隨機裝備屬性

type:difficultylevelmeasurement

member:getstarchance

作用:裝備星辰率

type:gemgeneratorbase

member:getrandomcoeff

作用:隨機寶石屬性

type:unitgrowthprofile

member:getrandomattributevalue

作用:公升級英雄的屬性隨機

type:unitextensions

member:generategradequalitysettin**alueforadventurer

作用:英雄評分隨機

type:difficultylevelmeasurement

member:getadvancedcommodities

作用:粉塵物品**

type:shop

member:getcommodities

作用:異界鑰匙**

Dll注入 修改PE檔案頭

dll注入,除了常見的遠執行緒注入,掛鉤和修改登錄檔以外還可以通過修改pe檔案頭來達到注入目的,廢話少說先上菜。pe檔案經常會呼叫外部dll檔案,而需要呼叫的dll檔案都會在pe檔案說明,通過 nt頭 可選頭 匯入表 可以找到匯入表,而匯入表就是對需要匯入的每個dll的說明,它實際上是乙個20個位元...

C 反編譯修改dll檔案

下面是修改il檔案然後重新生成dll 的步驟,適用於dll檔案沒有原始碼,但是需要修改一點點的小改動 問 為啥不直接用dnspy進行修改?答 我這邊需要修改.net2.0上編譯的乙個庫,用dnspy反編譯後修改了 執行反倒有問題,因此懷疑通過dnspy修改庫最後的編譯環境和原有庫的編譯環境不一致,考...

通過修改PE檔案匯入DLL

圖1由上圖我們可以得到以下資訊 idt的rva資訊在檔案偏移160h處,值為84cc idt的大小資訊在檔案偏移164h處,值為64h 1.1轉到idt處檢視具體資訊 轉到84cc也就是檔案偏移76cc 共有5個iid結構體 每個iid20個位元組,對應乙個dll相關資訊 最後乙個iid為null ...