当前位置:   article > 正文

【经验】IDA|python 脚本怎么使用反汇编的变量,以及获取反汇编地址上的值,附 IDA的output窗口被不小心关掉了的打开方式_ida拼接变量

ida拼接变量

省流版

IDA脚本怎么用变量——怎么获取目标文件内的值(python)

通过光标位置获取地址上的一系列值。

1 获取地址

ea = here()# 获取光标所在地址(等价于idc.get_screen_ea())

  • 1
  • 2

参考:IDAPython脚本编写指南(一) - #搬砖仔 - 博客园

2 获取地址上的值

def Byte(addr) #以字节为单位获取地址处的值
 
def Word(addr) #以字为单位获取地址处的值
 
def Dword(addr) #以双字为单位获取地址处的值
 
def Qword(addr) #以四字为单位获取地址处的值
 
def isLoaded(addr) #判断地址处的数值是否有效
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

参考:总结idapython在逆向中的应用 - 『脱壳破解区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

可能出现的问题:NameError: name ‘Byte’ is not defined

这是因为"Byte"是IDA7.0下的python语言,而我们的IDA可能是7.5或者7.6版本,这句"PatchByte"不兼容,所以会出现报错。

解决方法:我们只需在python脚本的第一行加上

from idc_bc695 import *
  • 1

就能解决报错问题。

参考:运行IDApython报错NameError: name ‘PatchByte‘ is not defined_皮皮蟹!的博客-CSDN博客

3 综上

#print(idc.get_screen_ea())
ea=here()
print(hex(Byte(ea)))
  • 1
  • 2
  • 3

在这里插入图片描述

4 进一步地

组合成列表:

ea=here()
unk_403018=[hex(Byte(ea+x)) for x in range(32)]
print(unk_403018)
  • 1
  • 2
  • 3

输出:

['0x6d', '0x55', '0x6b', '0x77', '0x62', '0x61', '0x9a', '0x62', '0x59', '0x89', '0x90', '0x7b', '0x9a', '0x8d', '0x62', '0x80', '0x80', '0x89', '0x92', '0x99', '0x91', '0x97', '0x96', '0x90', '0x4e', '0x99', '0x5d', '0x62', '0x8c', '0x8e', '0x7e', '0x81']
  • 1

IDA的output窗口被不小心关掉了怎么打开

今天在看ida的output窗口的时候把该窗口给关了,找了一分钟愣是没找到怎么打开这个output。
在这里插入图片描述
网上直接搜都说是View。

在这里插入图片描述

实际上,在Windows:
在这里插入图片描述

除了上面这两个之外,还有个常用的窗口Debugger:

在这里插入图片描述

详细解释版

TODO

本账号所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_46106285/article/details/127166299
。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/550076
推荐阅读
相关标签
  

闽ICP备14008679号