{"id":13591149,"url":"https://github.com/java-deobfuscator/deobfuscator","last_synced_at":"2025-04-08T14:32:44.266Z","repository":{"id":41088199,"uuid":"50709747","full_name":"java-deobfuscator/deobfuscator","owner":"java-deobfuscator","description":"The real deal","archived":false,"fork":false,"pushed_at":"2023-04-26T17:51:02.000Z","size":1770,"stargazers_count":1550,"open_issues_count":108,"forks_count":289,"subscribers_count":63,"default_branch":"master","last_synced_at":"2024-08-02T16:37:51.584Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://javadeobfuscator.com","language":"Java","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/java-deobfuscator.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}},"created_at":"2016-01-30T04:58:17.000Z","updated_at":"2024-08-02T02:18:20.000Z","dependencies_parsed_at":"2024-01-12T03:36:25.672Z","dependency_job_id":"ef233dd9-66d9-4aa5-a7e4-3e8cc7e84ef4","html_url":"https://github.com/java-deobfuscator/deobfuscator","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/java-deobfuscator%2Fdeobfuscator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/java-deobfuscator%2Fdeobfuscator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/java-deobfuscator%2Fdeobfuscator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/java-deobfuscator%2Fdeobfuscator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/java-deobfuscator","download_url":"https://codeload.github.com/java-deobfuscator/deobfuscator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223329965,"owners_count":17127695,"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":[],"created_at":"2024-08-01T16:00:54.134Z","updated_at":"2024-11-06T11:31:46.743Z","avatar_url":"https://github.com/java-deobfuscator.png","language":"Java","readme":"# Deobfuscator\n \nThis project aims to deobfuscate most commercially-available obfuscators for Java.\n\n## Updates\nTo download an updated version of Java Deobfuscator, go to the releases tab.\n\nIf you would like to run this program with a GUI, go to https://github.com/java-deobfuscator/deobfuscator-gui and grab a download. Put the deobfuscator-gui.jar in the same folder as deobfuscator.jar.\n\n## Quick Start\n\n* [Download](https://github.com/java-deobfuscator/deobfuscator/releases) the deobfuscator. The latest build is recommended.\n* If you know what obfuscators were used, skip the next two steps\n* Create `detect.yml` with the following contents. Replace `input.jar` with the name of the input\n```yaml\ninput: input.jar\ndetect: true\n```\n* Run `java -jar deobfuscator.jar --config detect.yml` to determine the obfuscators used\n* Create `config.yml` with the following contents. Replace `input.jar` with the name of the input\n```yaml\ninput: input.jar\noutput: output.jar\ntransformers:\n  - [fully-qualified-name-of-transformer]\n  - [fully-qualified-name-of-transformer]\n  - [fully-qualified-name-of-transformer]\n  - ... etc\n``` \n* Run `java -jar deobfuscator.jar`\n* Re-run the detection if the JAR was not fully deobfuscated - it's possible to layer obfuscations\n\nTake a look at [USAGE.md](USAGE.md) or [wiki](https://github.com/java-deobfuscator/deobfuscator/wiki) for more information.\n\n## It didn't work\n\nIf you're trying to recover the names of classes or methods, tough luck. That information is typically stripped out and there's no way to recover it.\n\nIf you are using one of our transformers, check out the [commonerrors](commonerrors) folder to check for tips.\n\nOtherwise, check out [this guide](CUSTOMTRANSFORMER.md) on how to implement your own transformer (also, open a issue/PR so I can add support for it)\n\n## Supported Obfuscators\n\n* [Zelix Klassmaster](http://www.zelix.com/)  \n* [Stringer](https://jfxstore.com/stringer/)  \n* [Allatori](http://www.allatori.com/)  \n* [DashO](https://www.preemptive.com/products/dasho/overview)  \n* [DexGuard](https://www.guardsquare.com/dexguard)    \n* [ClassGuard](https://www.zenofx.com/classguard/)  \n* Smoke (dead, website archive [here](https://web.archive.org/web/20170918112921/https://newtownia.net/smoke/))   \n* SkidSuite2 (dead, archive [here](https://github.com/GenericException/SkidSuite/tree/master/archive/skidsuite-2))\n\n## List of Transformers\n\nThe automagic detection should be able to recommend the transformers you'll need to use. However, it may not be up to date. If you're familiar with Java reverse engineering, feel free to [take a look around](src/main/java/com/javadeobfuscator/deobfuscator/transformers) and use what you need. \n\n## FAQs\n\n#### I got an error that says \"Could not locate a class file\"\nYou need to specify all the JARs that the input file references. You'll almost always need to add `rt.jar`\n(which contains all the classes used by the Java Runtime)\n\n#### I got an error that says \"A StackOverflowError occurred during deobfuscation\"\nIncrease your stack size. For example, `java -Xss128m -jar deobfuscator.jar`\n\n#### Does this work on Android apps?\nTechnically, yes, you could use something like [dex2jar](https://github.com/pxb1988/dex2jar)\nor [enjarify](https://github.com/storyyeller/enjarify). However, dex -\u003e jar conversion is lossy at best.\nTry [simplify](https://github.com/CalebFenton/simplify) or [dex-oracle](https://github.com/CalebFenton/dex-oracle) first.\nThey were written specifically for Android apps.\n\n## Licensing\n\nJava Deobfuscator is licensed under the Apache 2.0 license.\n","funding_links":[],"categories":["Java","Java (78)","\u003ca id=\"1d9dec1320a5d774dc8e0e7604edfcd3\"\u003e\u003c/a\u003e工具-新添加的"],"sub_categories":["\u003ca id=\"8f1b9c5c2737493524809684b934d49a\"\u003e\u003c/a\u003e文章\u0026\u0026视频"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjava-deobfuscator%2Fdeobfuscator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjava-deobfuscator%2Fdeobfuscator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjava-deobfuscator%2Fdeobfuscator/lists"}