簡體   English   中英

使用Mono.Cecil或dnlib獲取參數值

[英]Getting argument value with Mono.Cecil or dnlib

我想獲取第一個參數值(它是一個字符串)。 例如,我有以下指示:

指示

我有一個指令列表,有時可能會有其他參數,並且可能還有其他字符串。 我怎樣才能只得到第一個論點?

ldstr調用開始,我嘗試遍歷所有指令,直到遇到ldstr指令為止。 但是,如果傳遞了兩個字符串參數,它將無法正常工作。 有可能解決嗎?

如果要從類似於以下內容的內容中檢索“ OnLoseCondition”

Interface.CallHook("OnLoseCondition", <some variable>)

您將需要比指令反匯編器更聰明的東西-不一定是完整的反編譯器,但至少需要一些東西可以跨過您感興趣的函數調用的參數中遇到的指令,以便您可以回溯到其中的第一個參數電話。

如果該方法似乎與單指令的第二個參數來總是叫,這將是為得到的指令列表(見簡單例2在-2偏移前往方法的說明書),找到你的電話,找到指令,確認它是ldstr,最后從中獲取Operand。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM