假設我有一個正在我的電腦上運行的進程(target.exe)。 我發現,那個target.exe正在使用一個DLL(target.dll)。在這個DLL中有一個名爲方法:修改一個沒有進程重啓的進程調用的dll的方法
public PaintedObject GetRepaintedObject(Image img)
{
return new PaintedObject(img);
}
是否有可能趕上方法調用GetRepaintedObject在運行時和執行自己的代碼?我只想返回我自己的PaintedObject。
編輯:我覺得target.exe負荷target.dll到他的記憶空間,而這正是我要注入或修改方法GetRepaintedObject點。我不想重新編譯dll或其他東西。每次運行target.exe正在調用GetRepaintedObject我想攔截並返回自己的值。
找到Mono.Cecil庫。有很多教程。 –
我已經做到了。但是我沒有找到任何關於我的問題的例子或信息。 – Ngine
對於重複,你只需要用你想運行的代碼代替步驟'5b'。如果代碼超過一行或兩行,我會建議製作一個'inject.dll',並讓'GetRepaintedObject'從'inject.dll'調用一個靜態函數並返回該靜態方法的調用。如果您在Mono.Cecil中調用另一個dll的靜態方法時遇到問題,請特別提出一個新的quesiton。 –