綁定帳號登入

Android 台灣中文網

漫畫聯合國

[資訊] 用 IDA Pro 查詢敵人技能引用類別與參數

[複製連結] 查看: 680|回覆: 0|好評: 0
ASOSO | 收聽TA | 顯示全部樓層 |閱讀模式
發表於 2020-12-4 09:53

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
分享最近學習IDA pro Python有趣的成果,就是利用wiki上面敵人技能編號反查敵人技能初始代碼,比較有用的目的是了解該技能使用哪些類別與參數設定,給有興趣了解的人看一下。
  1. def eaid():
  2. ID=ida_kernwin.ask_long(1,"Enemy skill No.?")
  3. if ID <= 2000:
  4.    print("EnemyAttribute$SkillInit_Part1 #技能編號 0~2000")
  5.    FUN=LocByName("EnemyAttribute$SkillInit_Part1")
  6.    ID0=0
  7.    JPT=GetOperandValue(FUN+ 96,1)
  8. elif ID <= 3548:
  9.    print("EnemyAttribute$SkillInit_Part2 #技能編號 2001~3548")
  10.    FUN=LocByName("EnemyAttribute$SkillInit_Part2")
  11.    ID0=GetOperandValue(FUN+ 88,1)
  12.    JPT=GetOperandValue(FUN+108,1)
  13. elif ID <= 4055:
  14.    print("EnemyAttribute$SkillInit_Part3 #技能編號 3549~4055")
  15.    FUN=LocByName("EnemyAttribute$SkillInit_Part3")
  16.    ID0=GetOperandValue(FUN+ 96,1)
  17.    JPT=GetOperandValue(FUN+116,1)
  18. elif ID <= 4284:
  19.    print("EnemyAttribute$SkillInit_Part4 #技能編號 4087~4284")
  20.    FUN=LocByName("EnemyAttribute$SkillInit_Part4")
  21.    ID0=GetOperandValue(FUN+ 88,1)
  22.    JPT=GetOperandValue(FUN+104,1)
  23. else:
  24.    print("EnemyAttribute$SkillInit_Part5 #技能編號 4285~4491")
  25.    FUN=LocByName("EnemyAttribute$SkillInit_Part5")
  26.    ID0=GetOperandValue(FUN+ 88,1)  #技能起點編號
  27.    JPT=GetOperandValue(FUN+104,1)  #起跳點
  28. Offset=get_wide_dword(JPT+4*(ID-ID0))#函數偏移
  29. print("{:08X}".format(JPT+Offset))
  30. jumpto(JPT+Offset)
複製代碼

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 4碎鑽 +4 經驗 +2 幫助 +4 收起 理由
jmaxjovi + 1 + 1 非常讃
samson1357924 + 1 + 1 + 1 鼓勵一下!
lishas + 1 + 1 + 1 讚一個!
0931556150 + 1 + 1 非常讃

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則