首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Java 虚拟机原理】Class 字节码二进制文件分析 二 ( 常量池位置 | 常量池结构 | tag | info[] | 完整分析字节码文件中的常量池二进制数据 )

文章目录 前言 一、常量池结构分析 1、常量池位置 2、常量池结构 3、常量池单个常量 4、常量池单个常量 tag 标签 二、常量池字节码文件分析 0、常量池附加信息 1、常量池 #1 常量分析 2...】Class 字节码二进制文件分析 一 ( 字节码文件附加信息 | 魔数 | 次版本号 | 主版本号 | 常量池个数 ) ; 一、常量池结构分析 ---- 1、常量池位置 下图的红框内是常量池 , 在..." 常量池计数器 " 后面的若干字节 ; 第 10 字节及之后的若干字节是常量池范围 ; 不同的字节码文件 , 常量池的范围是不同的 ; 2、常量池结构 常量池的结构如下 : 3、常量池单个常量...常量池中的单个常量 : 每个常量 都是如下 cp_info 格式的数据 ; 4、常量池单个常量 tag 标签 常量池的 tag 以及代表的含义 : 二、常量池字节码文件分析 ---- 0、常量池附加信息...04 43 6F 64 65 ; 00 04 : 表示 UTF-8 字符串 , 有 4 个字节 ; 43 6F 64 65 : 字符串内容 Code ; 10、常量池 #10 常量分析 #10 常量分析

66940

【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 反汇编二进制机器码 | 打印反汇编数据 )

, 这些数据就是需要反汇编的机器码数据 ; 调用 反汇编解析器 的 disasm 方法 , 向汇编解析器中传入 节区数据 对应的 二进制数据 , 这些二进制数据都是机器码数据 , 即 , 需要反汇编这些二进制数据为...汇编 代码 ; 第一个参数设置二进制数据 ; 第二个参数指的是读取 raw 二进制数据的起始地址 , 一般设置 0 即可 ; 调用 反汇编解析器 的 disasm 方法 , 得到的是反汇编后的汇编代码列表...对应的 二进制数据 , 这些二进制数据都是机器码数据 # 即 , 需要反汇编这些二进制数据为 汇编 代码 # 第一个参数设置二进制数据...= capstone.disasm(raw, 0) 二、打印反汇编数据 ---- 调用 反汇编解析器 的 disasm 方法 , 得到的是反汇编后的汇编代码列表 ; 遍历该汇编代码列表 , 可以得到该行汇编代码对应的...print(text) 分析 打印结果 : 该操作是 入栈操作 , 肯定会影响到 esp 栈寄存器 ; 该汇编代码对应的机器码是 0x53 ; 00000000: push

78810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    20.8k stars本科生为你开发的十六进制编辑器

    ImHex 是一个十六进制编辑器,用于逆向工程师解码、显示和分析二进制数据格式、提取信息或写入字节补丁的工具。...字节修补 补丁管理 字节复制功能 字符串和 16 进制查找 彩色高亮显示 从开头、尾部以及当前光标位置跳转 自定义类 C++ 模式的语言,用于解析突出显示文件内容 基于 MIME 类型的自动加载 数组、...指针、结构,共用体,枚举,位域,使用声明,大小端支持 有用的错误信息,语法高亮和错误标记 数据导入 Base64 文件 IPS 和 IPS32 补丁 数据导出 IPS 和 IPS32 补丁 数据检查器允许将数据解析为多种类型...TMS320C64X M680X Ethereum 书签 区域突出显示 注释 数据分析 基于文件解析器和 MIME 类型的数据库的文件 magic 字节分布图 熵图 最大熵和平均熵 加密 / 压缩文件检测...数据分析器 使用可扩展的文件魔术界面立即识别已知文件类型。使用字节分布和熵图进一步分析数据。 图形数据处理器 使用易于使用的数据处理器预处理数据。

    92320

    Python渗透测试工具都有哪些?

    支持包括ARM,ARM64,MIPS和x86/x64平台 PyBFD: GNU 二进制文件描述(BFD)库的 Python 接口 Fuzzing Sulley: 一个模糊器开发和模糊测试的框架,由多个可扩展的构件组成的...WSBang: 基于 Web 服务自动化测试 SOAP 安全性 Construct: 用于解析和构建数据格式(二进制或文本)的库 fuzzer.py(feliam): 由 Felipe Andres...: Google 开发的内存分析框架 LibForensics: 数字取证应用程序库 TrIDLib: Python 实现的从二进制签名中识别文件类型 aft: 安卓取证工具集恶意软件分析 pyew:...: 查看和编辑二进制流 其他有用的库和工具 IPython: 增强的交互式 Python shell Beautiful Soup: HTML 解析器 matplotlib: 制作二维图 Mayavi:...: Python 语言对 OpenSSL 的封装 NetworkX: 图库(边, 节点) Pandas: 基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 pyparsing: 通用解析模块

    2.4K80

    加密固件分析实战

    看来我们有很好的线索。 可视化方法 如果在某些情况下,发行说明中未提及固件保护,则可以使用熵计算方法来确定固件是否已加密。简而言之,熵是对随机性的一种度量,它的值在0到1之间,值越高表示随机性越好。...接近1的值被认为是高熵,反之亦然。压缩或加密的数据具有较高的熵值。 二进制图像的熵分布将为我们提供二进制文件增量偏移的熵值。此信息将有助于猜测二进制文件的哪部分被加密/压缩以及哪部分是代码。...让我们进行动态分析以进一步理解该命令。运行简单的file命令表明它是一个ELF 32位MIPS MSB可执行文件。现在,我们可以使用MIPS体系结构的qemu用户空间模拟器来运行此二进制文件。...列举攻击面 1、由于我们将二进制文件上传到操作系统服务(固件更新服务)以处理该文件,我们可以找到用于解密算法的文件解析错误,并通过某种内存损坏问题来破坏服务进程,从而使我们可以访问系统。...Firmware Auditor可用于: 1、熵图 2、探索Linux文件系统并下载所有内容(在本文案例中为enimg二进制文件、PHP文件) 3、build 函数的反编译代码 4、更多内容 结论 我们掌握了不同的方法来确定固件是否已加密

    1.5K20

    123个Python黑客工具,再也不用问女朋友要手机密码了

    捆绑Python库 libdnet: 低级别的网络路由器,可用于接口查找和以太网帧转发 dpkt: 快速、轻量级的数据包创建、解析工具,适用于基本TCP/IP协议 Impacket: 探测和解码网络数据包...支持包括ARM,ARM64,MIPS和x86/x64平台 Keystone: 一个轻量级的多平台多架构支持的汇编框架 PyBFD: GNU 二进制文件描述(BFD)库的 Python 接口 CHIPSEC...Fuzzing Tools:使用 Windows 进程间通信机制进行模糊测试的工具 WSBang: 基于 Web 服务自动化测试 SOAP 安全性 Construct: 用于解析和构建数据格式(二进制或文本...: 从 RAM 中提取数据 Rekall: Google 开发的内存分析框架 LibForensics: 数字取证应用程序库 TrIDLib:Python 实现的从二进制签名中识别文件类型 aft:安卓取证工具集恶意软件分析...Python Arsenal for Reverse Engineering 是一个有大量逆向工程工具的合集 一篇来源于SANS的关于可用于取证分析的Python库的文章(PDF) 想要找到更多Python

    1.7K40

    比较全面的恶意软件分析资料与项目

    Scanning Framework - 模块化的递归文件扫描解决方案 Generic File Parser - 单个库解析工具,用来提取元数据、进行静态分析与检测文件内的宏 hashdeep -...Windows 事件日志文件 Foremost - 由 US Air Force 设计的文件提取工具 hachoir3 - 处理二进制程序的 Python 库的集合 Scalpel - 另一个数据提取工具...用于文件格式/网络协议/数据结构的逆向工程,用于 C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby 的代码生成 LIEF - LIEF 提供了一个跨平台的解析...,增强显示及增强的命令 pestudio - Windows 可执行程序的静态分析 Pharos - 二进制文件自动静态分析的二进制分析框架 plasma - 面向 x86/ARM/MIPS 的交互式反汇编器...- 用于解析注册表文件的 Python 库 RegRipper (GitHub) - 基于插件集的工具 存储和工作流 Aleph - 开源恶意软件分析管道系统 CRITs - 关于威胁、恶意软件的合作研究

    4.7K20

    123个Python黑客工具,再也不用问女朋友要手机密码了

    捆绑Python库 libdnet: 低级别的网络路由器,可用于接口查找和以太网帧转发 dpkt: 快速、轻量级的数据包创建、解析工具,适用于基本TCP/IP协议 Impacket: 探测和解码网络数据包...支持包括ARM,ARM64,MIPS和x86/x64平台 Keystone: 一个轻量级的多平台多架构支持的汇编框架 PyBFD: GNU 二进制文件描述(BFD)库的 Python 接口 CHIPSEC...Fuzzing Tools:使用 Windows 进程间通信机制进行模糊测试的工具 WSBang: 基于 Web 服务自动化测试 SOAP 安全性 Construct: 用于解析和构建数据格式(二进制或文本...: 从 RAM 中提取数据 Rekall: Google 开发的内存分析框架 LibForensics: 数字取证应用程序库 TrIDLib:Python 实现的从二进制签名中识别文件类型 aft:安卓取证工具集恶意软件分析...Python Arsenal for Reverse Engineering 是一个有大量逆向工程工具的合集 一篇来源于SANS的关于可用于取证分析的Python库的文章(PDF) 想要找到更多Python

    1.8K20

    . | 用于单细胞组学数据概率分析的Python库

    ,这是一个用于对单细胞组学数据进行深度概率分析的 Python 库。...1 背景 单细胞数据的分析方法通常用于解决降维、细胞聚类、细胞状态注释、去除噪声、差异表达分析、基因表达空间模式识别以及多模态组学数据的联合分析等计算任务。...由于概率模型通常使用 Python机器学习库来实现,因此用户通常需要与比传统分析环境中级别更低的接口和对象进行交互。 第二个障碍与新概率模型的开发有关。...图1 scvi-tools用户视角 适用于多种组学数据的 scvi-tools 具有两个新功能。...还在 GitHub 上构建了一个模板库,使开发人员能够快速创建一个使用单元测试、自动化文档和流行代码样式库的Python包。此模板库演示了如何将 scvi-tools 构建块用于外部模型部署。

    70230

    IDA和OD的基本使用(持续更新)

    结构体分析: IDA可对结构体进行自定义并对结构体数据进行解析, 以增强程序的可读性,步骤如下: 1、Shift + F1:打开本地类型; 2、insert:插入自定义的结构体;这里可以直接复制c...支持PowerPC IDAPython:IDC脚本的Python接口 IDA其他常用的一些插件 IDA FLIRT Signature Database – 用于识别静态编译的可执行文件中的库函数...Find Crypt – 寻找常用加密算法中的常数(需要安装 yara-python) IDA signsrch – 寻找二进制文件所使用的加密、压缩算法 Ponce – 污点分析和符号化执行工具...Patch 二进制文件插件 FRIEND – 哪里不会点哪里,提升汇编格式的可读性、提供指令、寄存器的文档等 SimplifyGraph – 简化复杂的函数流程图 bincat – 静态二进制代码分析工具包...,2017 Hex-Rays 插件第一名 golang_loader_assist – Golang编译的二进制文件分析助手 IDA脚本功能 File->Script command ,打开IDA的脚本执行窗口

    59910

    IDA pro简介

    默认选择第一个 PE文件就可以,一些其他格式的文件可以使用第三个选项 Binaryfile以二进制文件的形式记载,自己解析。 ? 各窗口的功能: IDA view: 定位要修改的代码段在哪里。...Imports窗口为导入函数窗口,它会列出被分析的二进制文件导入的所有函数。 ?...输出窗口下面的输入框在旧版本的 IDA pro里是用于执行IDC脚本命令,新版开始支持 python,如果你想用 IDC语法,点击一下左下角 python按钮切换到 IDC模式即可。...若勾选 Packdatabase(Store),会将之前分析过程中生成的四个数据库组件文件打包生成一个idb文件,并且删除四个数据库组件文件,若原目录下已有该分析文件对应的idb文件,会直接覆盖。...当用户不需要保存数据库时,可以勾选 DON’T SAVE the database选项,此时仍然会删除四个数据库组件文件,但不会生成或者覆盖 idb文件。

    5.5K31

    源码&二进制组成成分分析现状

    源码面对的主要场景为开发完成后对源码进行扫描,二进制文件为采购、引入的软件分析是否有安全危险。 二....二进制代码相似度(BCSD,Binary Code Similarity Detection),是二进制相似性分析的核心方法,用于检测两个或多个二进制代码文件之间的相似性,以此区分是否进行了组件复用。...CPU架构(例如x86与MIPS)上的二进制文件中查找漏洞。...最终设计并实现了一个用于在可执行文件中跨架构查找漏洞的工具原型。该原型目前支持三种指令集架构(x86、ARM和MIPS),并可以在任何这些架构的漏洞二进制代码中发现漏洞。...目前,软件供应链中对软件组成成分的分析方法仍然局限于分析和识别二进制文件安装后释放的动态链接库等文件的名称和哈希值等简单特征。

    51710

    路由器漏洞分析入门:D-Link Service.Cgi远程命令执行漏洞

    在正在到来的物联网时代,路由器是一个家庭里面的核心,连接着各种智能设备,路由器会被更多的黑客盯上,用于发动DDos,传播木马、病毒、挖矿软件等。...本文以D-Link路由器的一个远程命令执行漏洞为例带你入门路由器漏洞分析。.../adi0x90/attifyos ) 固件二进制文件DIR-645_FIRMWARE_1.03.ZIP (下载:ftp://ftp2.dlink.com/PRODUCTS/DIR-645/REVA/DIR...,实际的bin程序基本都是调用busybox 跟进htdocs看看两个bin文件都是mips 32的elf文件,fileaccess.cgi是权限控制相关的 /home/oit/firmware/_dir645..., MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), stripped 漏洞在cgibin文件里面,IDA打开,main函数判断假如访问的是

    7810

    数据库中存媒体文件的字段用什么类型?一文带你了解二进制大对象BLOB

    英文全称:Binary Large Object中文名称:二进制大对象Jim Starkey是 BLOB 的发明者,它于 1970 年代首次出现,描述的是一个二进制形式的大文件,一般可以是视频、音频或图像和图形文件...BLOB可以具有数 GB 大小的数字存储单元,它被压缩成单个文件,然后存储在数据库中。由于二进制数据只能被计算机读取,并且由数字0和1组成,因此通常需要打开相关程序。...图片由于 BLOB 文件的原始内容在存储时通常是非结构化的,因此它需要一个数据库名称或类型来处理文件并使其可访问。...blob页面 BLOB专为频繁的读/写操作而设计为随机读写操作优化的页面集合用于非顺序读写一个页面最多可以有 512 个字节创建的页面数量没有限制最大大小 1TB多个客户端不可以写入同一个 blobBLOB...BLOB在数据库中的使用二进制大对象由不同的数据库系统以不同的方式存储,数据库的结构通常不适合直接存储 BLOB。

    1.6K00

    听GPT 讲Rust源代码--compiler(18)

    Operand、Instruction等类型:它们是用于表示汇编指令的结构体,并提供方法用于创建和解析具体的指令。...该函数会判断Rust指令的类型并根据Hexagon指令集规则生成相应的汇编代码。 此外,该文件还提供了一些辅助函数和工具,用于Hexagon的指令格式解析、寄存器操作和错误处理等。...它提供了一些预定义的寄存器,用于描述在内联汇编语句执行过程中是否可能影响了函数的调用约定。.../src/spec/mips_unknown_linux_musl.rs文件是用于指定MIPS架构上运行Linux上MUSL标准库的编译器目标规范。...no_default_libraries:指定是否默认链接所有依赖库,这里设为true,表示不链接任何默认库,包括标准库。

    9010

    原创 Paper | 探秘 Zyxel 设备:固件提取分析

    如果正常的固件升级文件(.bin)不能使用,且系统无法启动,这个文件可以用于尝试恢复固件至可用状态。由于.ri文件通常用于恢复损坏的固件,它可能包含完整的系统映像,所以尝试分析 .ri 文件。...在 zld_fsextract 二进制文件中搜索密码,有很多很好的分析点,这里就不多赘述感兴趣可以自行跟进。发现 unzip 二进制文件使用这些选项来解压缩具有特定密码的文件,该密码在参数-P中定义。...根据在线找到的信息并进行快速分析,二进制文件似乎根据二进制文件名称或二进制文件内容以某种方式计算解压缩密码。所以不需要密码, zld_fsextract 使用 unzip 即可拿到镜像文件。...现在可以模拟 MIPS 环境执行二进制文件并尝试提取文件了。 2.2 QEMU 模拟 先来判断一下需要模拟什么环境,这里 N32 有一个比较大的坑。.../zyinit: cannot execute binary file 分析得知 N32 是用在32位和64位 MIPS 处理器上的一种中间形式[2],它允许使用64位寄存器和内存寻址,但保持了32位数据模型

    47010

    如何使用Umay分析物联网恶意软件的相似性

    关于Umay Umay是一款功能强大的物联网恶意软件相似性分析平台,该项目可以帮助广大研究人员针对基于共享代码的物联网恶意软件相似性进行分析,以识别与目标分析文件共享代码的其他恶意软件。...该项目中使用了IoTPOT提供的1000个恶意软件二进制文件。Radare2负责提取每个二进制文件的基本代码块和函数,并将这些数据的哈希值存储在SQL数据库中。...接下来,工具会从SQL数据库中查询并获取需要分析的样本基本代码块和函数,并给广大研究人员枚举出所有具有共享代码的恶意软件。...当前功能 1、基于静态代码分析技术分析恶意软件的共享代码; 2、支持ARM、MIPS、x86-64、i386、PowerPC、m68k和Renesas SH; 工具依赖组件 1、Python 3+...创建我们自己的数据集文件 python create_dataset.py samples/ 在上述命令中,我们需要通过命令行参数的形式将存储了所有样本的目录路径提供给Umay,此时Umay将会帮助我们生成一份

    41510

    走进Golang之编译器原理

    _test.go 结尾 库源码文件:没有上面特征的就是库源码文件,像我们使用的很多第三方包都属于这部分 go build 命令就是用来编译这其中的 命令源码文件 以及它依赖的 库源码文件。...可选项 说明 -a 将命令源码文件与库源码文件全部重新构建,即使是最新的 -n 把编译期间涉及的命令全部打印出来,但不会真的执行,非常方便我们学习 -race 开启竞态条件的检测,支持的平台有限制 -x...首先就是 Golang 文档中提到的会进行类型检查,还有类型推断,查看类型是否匹配,是否进行隐式转化(go没有隐式转化)。...所以编译器前端主要就是解析出编译器后端可以处理的正确的AST结构。 接下来我们看看编译器后端又有哪些事情要做。 机器只能够理解二进制并运行,所以编译器后端的任务简单来说就是怎么把AST翻译成机器码。...中间码生成 既然已经拿到AST,机器运行需要的又是二进制。为什么不直接翻译成二进制呢?其实到目前为止从技术上来说已经完全没有问题了。

    1.6K20

    Activity 基础知识

    so文件 so文件object的缩写,见名思义就是共享的对象,机器可以直接运行的二进制代码。...so库的名称和文件名so库的名称可任意,如daking。so库的文件名必须以lib开头。如libdaking.so,其中lib是必要前缀,daking才是这个库的名称。...java实现的功能要快so内存分配不受Dalivik/ART的单个应用限制,减少OOM ABI是什么 应用程序定义的二进制文件尤其指so文件,如何运行在相应的系统平台,从使用的指令集,内存对齐到可用的系统函数库中...典型的 ABI 包含以下信息:机器代码应使用的 CPU 指令集。运行时内存存储和加载的字节顺序。可执行二进制文件(例如程序和共享库)的格式,以及它们支持的内容类型。在代码与系统之间传递数据的各种规范。...ABI常表示两个程序模块之间的接口,且其中一个模块常为机器码级别的library或操作系统。 ABI定义了函数库的调用、应用的二进制文件(尤其是.so)如何运行在相应的系统平台上等细节。

    55010
    领券