我一直在嘗試對一款遊戲的功能進行逆向工程,但我有點困惑。我很新的逆向工程(我使用ollydbg BTW),所以我不知道所有的技巧和細節。逆向工程,左移七位移動
反正這裏是我的問題。當你拿起遊戲中的任何物品時,這個函數被調用。然後它會計算項目的價值並將此值添加到您的分數中。在函數被調用之前,一個值被推送,我相當有信心是項目的ID。 這是混淆了我的代碼:
SHL ESI,7
MOV CX,WORD PTR DS:[EDX+ESI+42]
ESI =物品的ID EDX =恆定值FE56A0
我被猜測,EDX(FE56A0)是項目的數組的開始, ESI是該項目的索引,42是該項目價值的指數。雖然ESI向左移動7位,但這會有些奇怪。隨着ESI增加,位移值不會線性增長。
因此,如果EDX表示數組的開始和ESI將是一個索引,陣列中的項目將不相等的尺寸。 這段代碼的含義令我困惑。
任何人有一個想法,這是什麼代碼可以代表什麼呢?
謝謝兩位非常感謝!兩者都非常有幫助!你似乎是對的。我試圖預測使用您的信息調用函數之前的結果,並且預測是正確的! EDX指向數組的底部,條目長度爲128個字節,項目的值在偏移量0x42處。我一直在混合使用十六進制和十進制數字,這使我困惑。現在我要試圖弄清楚這些條目還有哪些內容^^謝謝! – Vaporice 2011-04-19 23:20:14