【经验】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:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix