2015年1月24日 星期六

ICS數據2一般的CRC數據

作者:Onion
來源:http://ibf.tw/pk8Nh
備註:如果作者不希望被轉帖到此處,請告知,小弟會馬上刪帖。
-------------------------------------------------------------------------------------

之前問了幾個人赫然發現有的人竟然沒辦法從ICS數據中推出原本的位置

所以來個逆向思考的小文章...



以最簡單的無敵(物理)ICS數據來說吧


  1. //TwMS v1.46_ICS_物理無敵
  2. [Enable ]
  3. Alloc(AwesomeMan,64)
  4. Label(Invincible)

  5. 00D3D794: 
  6. DD AwesomeMan

  7. AwesomeMan:
  8. Cmp [esp],005EA13F
  9. Jne IsRectEmpty
  10. Mov [esp],Invincible
  11. Jmp IsRectEmpty

  12. Invincible:
  13. test eax,eax
  14. Jmp 005EA143

  15. [Disable]
  16. 00d3d794:
  17. DD IsRectEmpty
  18. Dealloc(AwesomeMan)

有看過這篇超簡易數據閱讀註釋的人應該基本上看得懂吧:)

所以我們知道

要修改的點應該是在他的Call底下,也就是005EA13F往下看
  1. 005EA13F - 85 c0                      - test eax,eax
  2. 005EA141 - 74 0e                      - je 005ea151
所以我們就可以知道其實真正有變動的部分是005EA141 
我們在ICS當中用Jmp把地個Je點跳過去了
所以我們就可以還原其CRC數據拉~

  1. [Enable]
  2. 005EA141:
  3. DD 90 90
  4. [Disable]
  5. 005EA141:
  6. je 005ea151

2 則留言: