{"id":22061254,"url":"https://github.com/netomi/bat","last_synced_at":"2025-10-20T12:35:31.104Z","repository":{"id":41344391,"uuid":"265488804","full_name":"netomi/bat","owner":"netomi","description":"Bytecode Analysis Toolkit.","archived":false,"fork":false,"pushed_at":"2022-10-28T17:25:09.000Z","size":3174,"stargazers_count":14,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-01T04:04:27.058Z","etag":null,"topics":["analysis","bytecode","dalvik","dex","jvm-bytecode","smali","smali-baksmali","virtual-machine"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netomi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"netomi"}},"created_at":"2020-05-20T07:41:46.000Z","updated_at":"2025-01-22T08:08:41.000Z","dependencies_parsed_at":"2023-01-19T22:45:51.060Z","dependency_job_id":null,"html_url":"https://github.com/netomi/bat","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netomi%2Fbat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netomi%2Fbat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netomi%2Fbat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netomi%2Fbat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netomi","download_url":"https://codeload.github.com/netomi/bat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253830911,"owners_count":21971001,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","bytecode","dalvik","dex","jvm-bytecode","smali","smali-baksmali","virtual-machine"],"created_at":"2024-11-30T18:10:38.165Z","updated_at":"2025-10-20T12:35:31.046Z","avatar_url":"https://github.com/netomi.png","language":"Kotlin","funding_links":["https://github.com/sponsors/netomi"],"categories":[],"sub_categories":[],"readme":"# Bytecode Analysis Toolkit\n\n![Build status](https://github.com/netomi/bat/workflows/build-status/badge.svg)\n[![GitHub license](https://img.shields.io/github/license/netomi/bat)](https://github.com/netomi/bat/blob/master/LICENSE)\n\nThis goal of this project is to provide tools to work with various java related bytecode formats, mainly JVM and dalvik bytecode.\n\nThe following modules are currently available\n\n* `classfile`: reads and writes **class** files\n* `dexfile`: reads and writes **dex** files\n* `dexdump`: prints the contents of **dex** files in the same format as the _dexdump_ tool\n* `classdump`: prints the contents of **class** files in the same format as the _javap_ tool\n* `smali`: assembler/disassembler for **dex** files\n* `jasm`: assembler/disassembler for **class** files\n* `tools`: convenient command line tools for the different modules\n\n## Usage\n\n1. In the root directory run: ./gradlew distZip\n2. cd tools/build/distributions\n3. Unzip the file 'bat-tools-${VERSION}.zip'\n4. Run bat-${toolname}.sh from the unzipped directory\n\n### Example usage:\n\n* baksmali tool\n\n```shell\nUsage: bat-baksmali [-v] [-o=\u003coutputFile\u003e] inputfile\ndisassembles dex files.\n\nParameters:\n      inputfile      input file to process (*.dex)\n\nOptions:\n  -o=\u003coutputFile\u003e    output directory\n  -v                 verbose output\n\n```\n\u003e bat-baksmali.sh -v -o out classes.dex\n\nThe generated **smali** files will be created in the **out** directory in a directory structure resembling the package name of the disassembled classes.\n\n## Dependency\n\nTo use the different modules via e.g. gradle in your own application, you can add the following to your build configuration:\n\n```\nrepositories {\n    ...\n    maven(\"https://jitpack.io\")\n}\n\ndependencies {\n    ...\n    implementation(\"com.github.netomi.bat:\u003cmodule\u003e:\u003ctag\u003e|\u003ccommit\u003e|\u003crelease\u003e\")\n}\n```\n\nwhere **module** might be one of\n\n* `classfile` \n* `dexfile`\n* `classdump`\n* `dexdump`\n* `smali`\n* `jasm`\n* `tinydvm`\n\n## License\n[Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetomi%2Fbat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetomi%2Fbat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetomi%2Fbat/lists"}