ICS數據2一般的CRC數據

之前問了幾個人赫然發現有的人竟然沒辦法從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
KNowlet 手打發佈於 knowlet3389.blogspot.com

留言

  1. 說不定有人看不懂DB 90 90(NOP)什麼意思喔 xD

    回覆刪除
    回覆
    1. 像是我就看不懂

      刪除
    2. 簡單來說... 就是不執行那個Address(005EA141)的原本指令(je 005ea151)

      刪除

張貼留言

本月最夯