base on Disassembler focused on comprehensive rust support. <h1 align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="./assets/logo_dark.png"> <img height="150px" src="./assets/logo_light.png"> </picture> <picture> <source media="(prefers-color-scheme: dark)" srcset="./assets/logo_text_dark.svg"> <img height="150px" src="./assets/logo_text_light.svg"> </picture> </h1> <h4 align="center">Ever wanted to inspect every <i>bite</i> of your binary.</h4> [![Test](https://github.com/WINSDK/bite/actions/workflows/ci.yml/badge.svg)](https://github.com/WINSDK/bite/actions/workflows/ci.yml) ![](https://img.shields.io/github/license/WINSDK/bite) `BiTE` is a platform-agnostic executable analysis tool. It aims to offer an environment for inspecting the content of binaries and their debug info. While it is still in early development, various architectures are supported. ## Showcase Here is an example of the assembly listing viewing. ![Assembly listing](./assets/screenshot.png) The ability to view a binary's disassembly and the associated source code. ![Source Code](./assets/split_source.png) ## Installation Building from source. ``` cargo install --path . ``` ## Features yet to be implemented Whenever I have time this year I'll try implementing most of these. \ If you feel like it, submit a pull request and I'll have a look at it! - [x] Port GUI to wgpu + winit - [x] Header with buttons and options - [x] Assembly listing exploration - [x] Interactive terminal - [ ] Assembly instruction byte patching - [x] Hex binary viewer - [ ] Debugging front-end's - [ ] [GDB](https://www.sourceware.org/gdb) - [ ] [LLDB](https://lldb.llvm.org) - [ ] [WinDbg](https://windbg.org) - [x] X86-64 support - [x] AArch64/Armv7 support - [x] Riscv64gc/Riscv32gc support - [x] MIPS-V support - [x] Demangling support for most targets - [x] MSVC - [x] Itanium - [x] Rust - [x] Decoding datastructures depending on each section - [ ] Assembly listing lifting - [x] Resolving addresses - [x] Interpreting non-code data - [ ] Creating labels for relative jumps ", Assign "at most 3 tags" to the expected json: {"id":"9435","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"