{"id":26804404,"url":"https://github.com/bfjesso/jesso-decompiler","last_synced_at":"2025-07-29T11:33:40.423Z","repository":{"id":268636351,"uuid":"900062567","full_name":"bfjesso/jesso-decompiler","owner":"bfjesso","description":"C decompiler for Windows and Linux","archived":false,"fork":false,"pushed_at":"2025-07-26T22:42:14.000Z","size":18743,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-26T23:40:07.336Z","etag":null,"topics":["c","decompiler","disassembler","linux","make","reverse-engineering","windows-10"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bfjesso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-07T18:59:33.000Z","updated_at":"2025-07-26T22:42:18.000Z","dependencies_parsed_at":"2024-12-18T02:26:28.773Z","dependency_job_id":"aff1fba5-153f-4c7b-8406-1a8c6e960dd1","html_url":"https://github.com/bfjesso/jesso-decompiler","commit_stats":null,"previous_names":["jesso4906/jesso-decompiler","bfjesso/jesso-decompiler"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bfjesso/jesso-decompiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfjesso%2Fjesso-decompiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfjesso%2Fjesso-decompiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfjesso%2Fjesso-decompiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfjesso%2Fjesso-decompiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bfjesso","download_url":"https://codeload.github.com/bfjesso/jesso-decompiler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfjesso%2Fjesso-decompiler/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267678448,"owners_count":24126333,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["c","decompiler","disassembler","linux","make","reverse-engineering","windows-10"],"created_at":"2025-03-29T22:16:36.153Z","updated_at":"2025-07-29T11:33:40.417Z","avatar_url":"https://github.com/bfjesso.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jesso Decompiler: A C decompiler for Windows and Linux\nThe Jesso Decompiler is a tool that will generate readable C code from a compiled binary. It can either read from a file, or parse a given string\nof bytes. The command line interface for Linux will handle reading from an ELF binary, and the Windows graphical user interface will handle reading a\nportable executable file. All bytes must be in x86-64 machine code, and when generating assembly output, it will be in Intel style syntax. The GUI for Windows\nis made using [wxWidgets](https://wxwidgets.org).\n\nThis is still a work in progress. Decompiling conditions (if statements and loops) is currently being worked on. \nThe disassembler is also not yet fully comprehensive of the Intel instruction set.\n\n# Installation\nIf you do not want to compile it yourself, there are precompiled binaries already in bin. \"jdc.exe\" is the GUI application for windows, and \"jdc\" is \nthe CLI for linux. As of right now, there is only a GUI available for Windows and only a CLI for Linux.\n\nTo compile the CLI on Linux you will need git, gcc, and make installed. Then clone the git repository, cd into it, and then run \"make jdc\". \nThis will compile the CLI and place it in bin/linux\n```bash\n\ngit clone https://github.com/bfjesso/jesso-decompiler.git\ncd jesso-decompiler\nmake jdc\n\n```\n\nTo build the GUI application on Windows you can use the Visual Studio project included in this repository. \nAdditionally you will need [wxWidgets](https://wxwidgets.org) installed.\n\n# CLI Usage\nIf you run the CLI with the -h or --help flag, you will get a list of flags that can be used with the Jesso Decompiler.\n```bash\n\n./jdc -h\n\n```\n# Disassembling\nIf you only want to disassemlble, you can do using the -da or --disassemble flag.\nBy default, it will accept a file path as the final argument. If you want to disassemble a literal string of bytes, you can do so with the -s flag.\n```bash\n\n# jdc will identify the architecture of an elf binary. If you want, you can use -x86 or -x64 to override this.\n./jdc -da ./test32 # disassembling an elf binary\n./jdc -da -s 55 # disassemble the byte 0x55. it will assume x64 if not overridden.\n\n```\nWhen disassembling a file, jdc will look for the \".text\" section and read the bytes from there. Same applies when decompiling.\n\n![Disassemly output of test32 in the CLI](./da-screenshot.png)\n\n# Decompiling\nTo use the decompiler, run jdc with the -dc or --decompile flag.\nBy default, jdc will search the binary for symbols and apply them to function names. To disable this, use the -ns flag.\n```bash\n\n./jdc -dc ./test32 # decompiling a 32-bit elf binary\n\n```\nThis will then prompt for further input. Use h for help.\nTo list all functions that jdc identified, use l.\nTo decompile a function, first select it with s and enter the index of the function when prompted. Listing all the functions with l will show each functions's index.\nOnce a function is selected, you can use dc to print the decompilation. It will ask if you want it to show line numbers for the decompiled function.\n\n![Decompiling a function from test32 in the CLI](./dc-screenshot.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbfjesso%2Fjesso-decompiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbfjesso%2Fjesso-decompiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbfjesso%2Fjesso-decompiler/lists"}