從調試程序我只知道,在點擊一個按鈕之前,一組已知數據不在內存中(通過內存搜索確認),點擊後數據在內存中(所有時間都是不同的位置)。如何查找生成已知數據的代碼?
如何找到生成此數據的代碼?
其中一個主要問題(可能很重要)知道它是一個.net程序(我無法用Reflector分析它,因爲它被混淆了)。所以我正在分析由.NET生成的程序集(在Olly/Immunity/IDA中)。
從調試程序我只知道,在點擊一個按鈕之前,一組已知數據不在內存中(通過內存搜索確認),點擊後數據在內存中(所有時間都是不同的位置)。如何查找生成已知數據的代碼?
如何找到生成此數據的代碼?
其中一個主要問題(可能很重要)知道它是一個.net程序(我無法用Reflector分析它,因爲它被混淆了)。所以我正在分析由.NET生成的程序集(在Olly/Immunity/IDA中)。
如果是.Net,則可以調試IL代碼。這並不容易,但應該可以找到將序列寫入內存的il指令。
嘗試debugging tools for windows與所謂的SOS擴展名。
您也可以嘗試是否可以從混淆程序集中生成用於調試的C#代碼。但是這絕對不會比IL更好的可讀代碼。
添加作弊引擎到您的工具包。
如果你能得到地址,它會寫給你,可以右鍵點擊它並選擇「找出什麼寫到這個地址」。
P.S.對於相反的效果,您可以在內存視圖中選擇一條指令,單擊右鍵並選擇「查找指定此指令的訪問權限」。
無法以某種方式找到生成我的預知數據的.NET-Framework生成的彙編指令? – 2010-09-05 19:03:47
我不知道這樣的方法。我能想到的唯一方法是從處理按鈕單擊事件的方法開始調試代碼,如果你能在il中找到這一點。 – schoetbi 2010-09-05 21:51:37
通過該代碼進行調試幾乎是不可能的,因爲.NET會生成大量代碼。我嘗試了按鈕單擊的指令跟蹤,並在8小時後停止,因此幾乎不可行。 – 2010-09-06 05:10:56