馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊
x
分享最近學習IDA pro Python有趣的成果,就是利用wiki上面敵人技能編號反查敵人技能初始代碼,比較有用的目的是了解該技能使用哪些類別與參數設定,給有興趣了解的人看一下。
- def eaid():
- ID=ida_kernwin.ask_long(1,"Enemy skill No.?")
- if ID <= 2000:
- print("EnemyAttribute$SkillInit_Part1 #技能編號 0~2000")
- FUN=LocByName("EnemyAttribute$SkillInit_Part1")
- ID0=0
- JPT=GetOperandValue(FUN+ 96,1)
- elif ID <= 3548:
- print("EnemyAttribute$SkillInit_Part2 #技能編號 2001~3548")
- FUN=LocByName("EnemyAttribute$SkillInit_Part2")
- ID0=GetOperandValue(FUN+ 88,1)
- JPT=GetOperandValue(FUN+108,1)
- elif ID <= 4055:
- print("EnemyAttribute$SkillInit_Part3 #技能編號 3549~4055")
- FUN=LocByName("EnemyAttribute$SkillInit_Part3")
- ID0=GetOperandValue(FUN+ 96,1)
- JPT=GetOperandValue(FUN+116,1)
- elif ID <= 4284:
- print("EnemyAttribute$SkillInit_Part4 #技能編號 4087~4284")
- FUN=LocByName("EnemyAttribute$SkillInit_Part4")
- ID0=GetOperandValue(FUN+ 88,1)
- JPT=GetOperandValue(FUN+104,1)
- else:
- print("EnemyAttribute$SkillInit_Part5 #技能編號 4285~4491")
- FUN=LocByName("EnemyAttribute$SkillInit_Part5")
- ID0=GetOperandValue(FUN+ 88,1) #技能起點編號
- JPT=GetOperandValue(FUN+104,1) #起跳點
- Offset=get_wide_dword(JPT+4*(ID-ID0))#函數偏移
- print("{:08X}".format(JPT+Offset))
- jumpto(JPT+Offset)
複製代碼
|
評分
-
查看全部評分
|