• Stars
    star
    138
  • Rank 256,163 (Top 6 %)
  • Language
    C++
  • Created over 8 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

从oat文件中dump出来dex的工具

artdumper

android5.0之后,从oat文件中dump出来dex的工具

工具的由来:
因为平时工作中经常需要从framwork中dump出一些系统dex,并且分析其行为,但在5.0之后没有类似的工具,所以自己开发了这个工具。

工具的实现原理:
从android5.0之后,虚拟机变更为art虚拟机,对应的系统文件也变更为oat格式,oat只是对于linux的elf文件的一个扩展,在内部包含一个完整的dex文件,根据这个思路实现了这个dump工具。

具体方法:
1、从elf的标准文件头找到具体的rodata段,并且获取其段的开始地址和大小;
2、从rodata段开始才是一个完整的oat文件,解析具体的oat头,获取oat头的信息;
3、跳过oat文件的头和对应的key-value存储值;
4、获取dex的个数后(因为一个oat中可以包含多个dex文件),依次循环获取dex的文件名和具体dex的offset和size;
5、将具体的dex文件dump到指定目录;

其中elf解析参考和引用了elfloader和google对于elf文件解析的代码,oat的解析参考了android相关art的实现。

工具如何使用:
Usage: OATLoaderDumper [options]
--oat-file:要dump的oat文件。
--out-path:dump的输出目录。

具体例子: OATLoaderDumper --oat-file=F:\androidL\framework\arm\wm.odex --out-path=F:\androidL\outdex\

系统:
目前只是支持windows,后续会陆续支持linux和mac

More Repositories

1

RePlugin

RePlugin - A flexible, stable, easy-to-use Android Plug-in Framework
Java
7,228
star
2

Atlas

A high-performance and stable proxy for MySQL, it is developed by Qihoo's DBA and infrastructure team
C
4,656
star
3

wayne

Kubernetes multi-cluster management and publishing platform
TypeScript
3,702
star
4

evpp

A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.
C++
3,498
star
5

ArgusAPM

Powerful, comprehensive (Android) application performance management platform. 360线上移动性能检测平台
Java
2,661
star
6

Quicksql

A Flexible, Fast, Federated(3F) SQL Analysis Middleware for Multiple Data Sources
Java
2,051
star
7

poseidon

A search engine which can hold 100 trillion lines of log data.
Go
1,951
star
8

safe-rules

详细的C/C++编程规范指南,由360质量工程部编著,适用于桌面、服务端及嵌入式软件系统。
1,918
star
9

QConf

Qihoo Distributed Configuration Management System
C++
1,861
star
10

XLearning

AI on Hadoop
Java
1,734
star
11

phptrace

A tracing and troubleshooting tool for PHP scripts.
C
1,682
star
12

mysql-sniffer

mysql-sniffer is a network traffic analyzer tool for mysql, it is developed by Qihoo DBA and infrastructure team
C
830
star
13

huststore

High-performance Distributed Storage
C
823
star
14

doraemon

Doraemon is a Prometheus based monitor system
JavaScript
653
star
15

logkafka

Collect logs and send lines to Apache Kafka
C++
497
star
16

zeppelin

A Scalable, High-Performance Distributed Key-Value Platform
C++
398
star
17

tensornet

C++
311
star
18

qbusbridge

The Apache Kafka Client SDK
C++
289
star
19

XSQL

Unified SQL Analytics Engine Based on SparkSQL
Scala
209
star
20

WatchAD2.0

WatchAD2.0是一款针对域威胁的日志分析与监控系统
CSS
206
star
21

zendAPI

The C++ wrapper of zend engine
C++
183
star
22

mongosync

mongosync is simple && useful tool to sync data between mongo replicaSet, it is developed by Qihoo's DBA and infrastructure team
C++
153
star
23

influx-proxy

influxdb HA
Go
128
star
24

kmemcache

linux kernel memcache server
C
126
star
25

XLearning-XDML

extremely distributed machine learning
Scala
122
star
26

simcc

A simple C++ common base library used in Qihoo 360
C++
116
star
27

nemo

A library that provide multiply data structure. Such as map, hash, list, set. We build these data structure base on rocksdb as the storage layer for Pika https://github.com/OpenAtomFoundation/pika .
C++
116
star
28

ngx_http_subrange_module

Split one big HTTP/Range request to multiple subrange requesets
C
107
star
29

blackwidow

A library implements REDIS commands(Strings, Hashes, Lists, Sorted Sets, Sets, Keys, HyperLogLog) based on rocksdb, as the storage layer for Pika https://github.com/OpenAtomFoundation/pika .
C++
92
star
30

QNAT

C
88
star
31

Mario

A Library that make the write from synchronous to asynchronous.
C++
79
star
32

Luwak

利用预训练语言模型从非结构化威胁报告中提取 MITRE ATT&CK TTP 信息
Python
63
star
33

mpic

A C++ embedded library of multiple processes framework developed and used at Qihoo360.
C++
50
star
34

dgl-operator

The DGL Operator makes it easy to run Deep Graph Library (DGL) graph neural network training on Kubernetes
Go
45
star
35

nemo-rocksdb

Add TTL feature on rocksdb, and compatible with rocksdb
C++
44
star
36

ironwill

Useful iOS components for your project. 健壮且有用的OC代码, 可以直接在你的iOS应用中使用.
Objective-C
37
star
37

elog

A erlang log nif
C++
29
star
38

rust-jsonnet

rust-jsonnet - The Google Jsonnet( operation data template language) for rust
Rust
24
star
39

zeppelin-gateway

Object Gateway Provide Applications with a RESTful Gateway to zeppelin
C++
24
star
40

zeppelin-client

Client Library for zeppelin
C++
21
star
41

luajit-jsonnet

The Google Jsonnet( operation data template language) for Luajit
C++
16
star
42

HTTPSLayer

PHP
16
star
43

CReSS

Cross-model Retrieval between 13C NMR Spectrum and Structure
Python
13
star
44

wayne-backend-plugins

Wayne backend plugins
Go
13
star
45

cloud-website

360 cloud official website
PHP
8
star
46

gpstall

Stall Postgres' insert command
C++
8
star
47

wayne-frontend-plugins

Wayne UI Plugins
TypeScript
7
star
48

SEEChat

一见多模态对话模型
Python
5
star
49

wiki

wiki for qihoo infrastructure team
2
star
50

se-office

se-office扩展,提供基于开放标准的全功能办公生产力套件,基于浏览器预览和编辑office。
JavaScript
1
star