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

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

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

1 获取地址

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

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

2 获取地址上的值

def Byte(addr) #以字节为单位获取地址处的值
 
def Word(addr) #以字为单位获取地址处的值
 
def Dword(addr) #以双字为单位获取地址处的值
 
def Qword(addr) #以四字为单位获取地址处的值
 
def isLoaded(addr) #判断地址处的数值是否有效

参考:总结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 *

就能解决报错问题。

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

3 综上

#print(idc.get_screen_ea())
ea=here()
print(hex(Byte(ea)))

在这里插入图片描述

4 进一步地

组合成列表:

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

输出:

['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']

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

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

在这里插入图片描述

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

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46106285/article/details/127166299