Любые хорошие деобфузаторы для java?


1

Итак, я создал obfuscator для исходного кода Java, кто-нибудь знает, есть ли хорошие деобфускаторы, которые я мог бы проверить, насколько хорошо мой обфускатор? Я знаю, что там много деобфускаторов, однако многие из них просто декомпилируют код байта Java обратно в исходный код, но не являются фактической целью многих методов обфускации, таких как непрозрачные предикаты, обфускация потока управления и другие методы обфускации. Так им интересно, может ли кто-нибудь порекомендовать какие-нибудь деобфускаторы, которые могут ориентироваться на такие методы, как те, которые я упомянул выше?

  0

Большинство deobfuscators такого рода вы ищете ориентированы на конкретные обфускаторы. Поэтому я думаю, что ответа еще не было, но будет, если ваш обфускатор станет популярным. В любом случае, если вы предоставите свой обфускатор или обфускацию образца, я могу взглянуть и рассказать вам, насколько я хорош. 06 мар. 162016-03-06 14:02:41

  0

@ Anthimony Я не полностью реализовал свой obfuscator прямо сейчас, у меня есть копия и вставка некоторого запутанного кода с оригиналом двух методов, которые я реализовал, если бы вы могли дать мне свое мнение по этому вопросу, я был бы очень доволен 06 мар. 162016-03-06 17:39:30

  0

@Antimony http://chopapp.com/#bvwgh7fn вот ссылка, первая половина - это оригинал, второй - запутанный 06 мар. 162016-03-06 17:39:51

  0

@ Антитея также нехорошо сказать, что некоторые из переменных в файле не обфускации, такие как метод имена, поскольку я не передал его через часть моего обфускатора, который скремблирует имена, переменные, которые были запутаны, являются новыми сгенерированными переменными, которые выполняются при обфускации потока управления. 06 мар. 162016-03-06 17:44:42

  0

Не выглядит слишком плохо. Я бы, вероятно, справился с этим, преобразовывая поля в локальные переменные, записывая проход, чтобы упростить алгебраические тождества, а затем пусть нормальное постоянное распространение сделает все остальное. Я не думаю, что какие-то общие деобфускаторы справятся с этим, но человеку легко написать инструмент, который отменяет это. Может быть, когда вы закончите, вы должны опубликовать обфускацию образца как проблему, и я могу попытаться деобфусить его. 06 мар. 162016-03-06 22:06:48

  0

@ Антитела большое спасибо за вашу помощь: D, это звучит хорошо спасибо 06 мар. 162016-03-06 22:18:41

4

Этапы оптимизации Proguard приводят к деобфушающему мусору, как я написал здесь - http://www.surrendercontrol.com/2016/03/using-proguard-to-deobfuscate-code.html.

Кроме того, двигатель Simplify Caleb Fention имеет кучу очень хороших идей и реализует их Dalvik код, если не прямо на JVM - https://github.com/CalebFenton/simplify