All Projects → tboox → Dexbox

tboox / Dexbox

Licence: apache-2.0
A lightweight dex file parsing library

Programming Languages

java
68154 projects - #9 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Dexbox

Lief
Authors
Stars: ✭ 2,730 (+4165.63%)
Mutual labels:  dex, parser
Cssparser.js
cssparser.js is a parser that generate json from css with matched orders & structures.
Stars: ✭ 61 (-4.69%)
Mutual labels:  parser
Tree Sitter Cpp
C++ grammar for tree-sitter
Stars: ✭ 52 (-18.75%)
Mutual labels:  parser
When
A natural language date/time parser with pluggable rules
Stars: ✭ 1,113 (+1639.06%)
Mutual labels:  parser
Tokenlon Sdk
The Gateway to Decentralized Exchange
Stars: ✭ 56 (-12.5%)
Mutual labels:  dex
Mlua
An interpreter of lua-like language written in C++
Stars: ✭ 61 (-4.69%)
Mutual labels:  parser
M3u8
Python m3u8 Parser for HTTP Live Streaming (HLS) Transmissions
Stars: ✭ 1,064 (+1562.5%)
Mutual labels:  parser
Quill Delta Parser
A PHP library to parse and render Quill WYSIWYG Deltas into HTML - Flexibel and extendible for custom elements.
Stars: ✭ 63 (-1.56%)
Mutual labels:  parser
Waykichain
Public Blockchain as a Decentralized Finance Infrastructure Service Platform
Stars: ✭ 1,117 (+1645.31%)
Mutual labels:  dex
String Calc
PHP calculator library for mathematical terms (expressions) passed as strings
Stars: ✭ 60 (-6.25%)
Mutual labels:  parser
Bitshares Core
BitShares Blockchain implementation and command-line interface
Stars: ✭ 1,096 (+1612.5%)
Mutual labels:  dex
Littlelang
A little language interpreter written in Go
Stars: ✭ 56 (-12.5%)
Mutual labels:  parser
Mobidex
Mobile trustless trading through Uniswap
Stars: ✭ 61 (-4.69%)
Mutual labels:  dex
Spoon
Spoon is a metaprogramming library to analyze and transform Java source code (up to Java 15). 🥄 is made with ❤️, 🍻 and ✨. It parses source files to build a well-designed AST with powerful analysis and transformation API.
Stars: ✭ 1,078 (+1584.38%)
Mutual labels:  parser
Csstree
A tool set for CSS including fast detailed parser, walker, generator and lexer based on W3C specs and browser implementations
Stars: ✭ 1,121 (+1651.56%)
Mutual labels:  parser
Atc
STM32 LL AT-Command parser
Stars: ✭ 53 (-17.19%)
Mutual labels:  parser
Gmime
A C/C++ MIME creation and parser library with support for S/MIME, PGP, and Unix mbox spools.
Stars: ✭ 57 (-10.94%)
Mutual labels:  parser
Url Highlight
PHP library to parse urls from string input
Stars: ✭ 61 (-4.69%)
Mutual labels:  parser
Formula Parser
Parsing and evaluating mathematical formulas given as strings.
Stars: ✭ 62 (-3.12%)
Mutual labels:  parser
Bibliothecary
📔 Libraries.io Package Manager Manifest Parsers
Stars: ✭ 62 (-3.12%)
Mutual labels:  parser

Dexbox

A lightweight dex file parsing library

Introduction (中文)

Dexbox is a lightweight dex file parsing library.

Prerequisites

XMake installed on the system. Available here.

Build

$ xmake

Run tests

$ xmake run dexdump tests/tests.dex
.file _cast.java
.class _cast
.super Object
    .method public void <init>()
        .register 1
        .argument 1
        .catches 0
        .prologue
        0x000b0c: 7010 4e00 0000                         |0000: invoke-direct {v0}, Object.<init>()void
        0x000b12: 0e00                                   |0003: return-void

    .method public int main(java.lang.String[])
        .register 7
        .argument 1
        .catches 0
        .prologue
        0x000b24: 6200 0500                              |0000: sget-object v0, System.out:PrintStream
        0x000b28: 1a01 a800                              |0002: const-string v1, "test: ==============================================================="
        0x000b2c: 6e20 4800 1000                         |0004: invoke-virtual {v0, v1}, PrintStream.println(String)void
        0x000b32: 6200 0500                              |0007: sget-object v0, System.out:PrintStream
        0x000b36: 1a01 a900                              |0009: const-string v1, "test: cast: .."
        0x000b3a: 6e20 4800 1000                         |000b: invoke-virtual {v0, v1}, PrintStream.println(String)void
        0x000b40: 6200 0500                              |000e: sget-object v0, System.out:PrintStream
        0x000b44: 1a01 0000                              |0010: const-string v1, ""
        0x000b48: 6e20 4800 1000                         |0012: invoke-virtual {v0, v1}, PrintStream.println(String)void
        0x000b4e: 12f0                                   |0015: const/4 v0, #-1 // #ff
        0x000b50: 8102                                   |0016: int-to-long v2, v0
        0x000b52: 6201 0500                              |0017: sget-object v1, System.out:PrintStream
        0x000b56: 2204 2400                              |0019: new-instance v4, StringBuilder
        0x000b5a: 7010 5100 0400                         |001b: invoke-direct {v4}, StringBuilder.<init>()void
        0x000b60: 1a05 9d00                              |001e: const-string v5, "num = "
        0x000b64: 6e20 5600 5400                         |0020: invoke-virtual {v4, v5}, StringBuilder.append(String)StringBuilder
        0x000b6a: 0c04                                   |0023: move-result-object v4
        0x000b6c: 6e30 5500 2403                         |0024: invoke-virtual {v4, v2, v3}, StringBuilder.append(long)StringBuilder
        0x000b72: 0c02                                   |0027: move-result-object v2
        0x000b74: 6e10 5700 0200                         |0028: invoke-virtual {v2}, StringBuilder.toString()String
        0x000b7a: 0c02                                   |002b: move-result-object v2
        0x000b7c: 6e20 4800 2100                         |002c: invoke-virtual {v1, v2}, PrintStream.println(String)void
        0x000b82: 8f01                                   |002f: int-to-short v1, v0
        0x000b84: 6202 0500                              |0030: sget-object v2, System.out:PrintStream
        0x000b88: 2203 2400                              |0032: new-instance v3, StringBuilder
        0x000b8c: 7010 5100 0300                         |0034: invoke-direct {v3}, StringBuilder.<init>()void
        0x000b92: 1a04 9d00                              |0037: const-string v4, "num = "
        0x000b96: 6e20 5600 4300                         |0039: invoke-virtual {v3, v4}, StringBuilder.append(String)StringBuilder
        0x000b9c: 0c03                                   |003c: move-result-object v3
        0x000b9e: 6e20 5400 1300                         |003d: invoke-virtual {v3, v1}, StringBuilder.append(int)StringBuilder
        0x000ba4: 0c01                                   |0040: move-result-object v1
        0x000ba6: 6e10 5700 0100                         |0041: invoke-virtual {v1}, StringBuilder.toString()String
        0x000bac: 0c01                                   |0044: move-result-object v1
        0x000bae: 6e20 4800 1200                         |0045: invoke-virtual {v2, v1}, PrintStream.println(String)void
        0x000bb4: 8e01                                   |0048: int-to-char v1, v0
        0x000bb6: 6202 0500                              |0049: sget-object v2, System.out:PrintStream
        0x000bba: 2203 2400                              |004b: new-instance v3, StringBuilder
        0x000bbe: 7010 5100 0300                         |004d: invoke-direct {v3}, StringBuilder.<init>()void
        0x000bc4: 1a04 9d00                              |0050: const-string v4, "num = "
        0x000bc8: 6e20 5600 4300                         |0052: invoke-virtual {v3, v4}, StringBuilder.append(String)StringBuilder
        0x000bce: 0c03                                   |0055: move-result-object v3
        0x000bd0: 6e20 5400 1300                         |0056: invoke-virtual {v3, v1}, StringBuilder.append(int)StringBuilder
        0x000bd6: 0c01                                   |0059: move-result-object v1
        0x000bd8: 6e10 5700 0100                         |005a: invoke-virtual {v1}, StringBuilder.toString()String
        0x000bde: 0c01                                   |005d: move-result-object v1
        0x000be0: 6e20 4800 1200                         |005e: invoke-virtual {v2, v1}, PrintStream.println(String)void
        0x000be6: 8d00                                   |0061: int-to-byte v0, v0
        0x000be8: 6201 0500                              |0062: sget-object v1, System.out:PrintStream
        0x000bec: 2202 2400                              |0064: new-instance v2, StringBuilder
        0x000bf0: 7010 5100 0200                         |0066: invoke-direct {v2}, StringBuilder.<init>()void
        0x000bf6: 1a03 9d00                              |0069: const-string v3, "num = "
        0x000bfa: 6e20 5600 3200                         |006b: invoke-virtual {v2, v3}, StringBuilder.append(String)StringBuilder
        0x000c00: 0c02                                   |006e: move-result-object v2
        0x000c02: 6e20 5400 0200                         |006f: invoke-virtual {v2, v0}, StringBuilder.append(int)StringBuilder
        0x000c08: 0c00                                   |0072: move-result-object v0
        0x000c0a: 6e10 5700 0000                         |0073: invoke-virtual {v0}, StringBuilder.toString()String
        0x000c10: 0c00                                   |0076: move-result-object v0
        0x000c12: 6e20 4800 0100                         |0077: invoke-virtual {v1, v0}, PrintStream.println(String)void
        0x000c18: 1600 ffff                              |007a: const-wide/16 v0, #-1 // #ffff
        0x000c1c: 6202 0500                              |007c: sget-object v2, System.out:PrintStream
        0x000c20: 2203 2400                              |007e: new-instance v3, StringBuilder
        0x000c24: 7010 5100 0300                         |0080: invoke-direct {v3}, StringBuilder.<init>()void
        0x000c2a: 1a04 9d00                              |0083: const-string v4, "num = "
        0x000c2e: 6e20 5600 4300                         |0085: invoke-virtual {v3, v4}, StringBuilder.append(String)StringBuilder
        0x000c34: 0c03                                   |0088: move-result-object v3
        0x000c36: 8400                                   |0089: long-to-int v0, v0
        0x000c38: 6e20 5400 0300                         |008a: invoke-virtual {v3, v0}, StringBuilder.append(int)StringBuilder
        0x000c3e: 0c00                                   |008d: move-result-object v0
        0x000c40: 6e10 5700 0000                         |008e: invoke-virtual {v0}, StringBuilder.toString()String
        0x000c46: 0c00                                   |0091: move-result-object v0
        0x000c48: 6e20 4800 0200                         |0092: invoke-virtual {v2, v0}, PrintStream.println(String)void
        0x000c4e: 6200 0500                              |0095: sget-object v0, System.out:PrintStream
        0x000c52: 1a01 0000                              |0097: const-string v1, ""
        0x000c56: 6e20 4800 1000                         |0099: invoke-virtual {v0, v1}, PrintStream.println(String)void
        0x000c5c: 6200 0500                              |009c: sget-object v0, System.out:PrintStream
        0x000c60: 1a01 aa00                              |009e: const-string v1, "test: cast: ok"
        0x000c64: 6e20 4800 1000                         |00a0: invoke-virtual {v0, v1}, PrintStream.println(String)void
        0x000c6a: 1200                                   |00a3: const/4 v0, #0 // #0
        0x000c6c: 0f00                                   |00a4: return v0

Contacts

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].