2013-12-11 1 views
0

Сегодня я модифицировал некоторые файлы rom в небольшом мод, который я создаю. Некоторые из методов smali, которые я должен был изменить, были огромными, около 1200 строк smali из анонимного класса. Следующий кодекс с большим количеством прыжков был кошмаром. Сначала я попытался создать какую-то схему, но если бы стал настоящим беспорядком. Итак, как вы работаете с большими файлами smali? Кто-нибудь знает, существует ли какой-либо просмотрщик потока для функции или что-то еще?Как вы обрабатываете smali-переходы (условия, исключения и т. Д.) В больших файлах/методах.

Заранее спасибо.

+0

используйте блокнот и t стойка использования регистров – DevZer0

+0

Ну, не очень хороший совет. Я делаю то же самое на листе бумаги :) – Notbad

ответ

0

Прежде всего, убедитесь, что у вас есть хорошая подсветка синтаксиса. Здесь перечислены несколько вариантов: http://androidcracking.blogspot.com/search/label/syntax%20highlighting. Я предпочитаю выделение синтаксиса Sublime, потому что он помогает проверить ваш синтаксис, и я написал его.

Если у вас есть к нему доступ, IDA Pro покажет вам контрольные потоковые графики, которые помогут вам понять вещи на высоком уровне. Вы не можете делать никаких изменений, и это не бесплатно.

Вместо того чтобы полностью работать в Smali, рассмотрите возможность использования декомпилятора. Это превратит Smali во что-то более высокое. Будет легче понять код и указать, где вы хотите внести изменения. Это уменьшит количество Smali, которое вам нужно будет глотать.

Для декомпиляции, рекомендую:

  • dex2jar + jdgui, это то, что большинство людей используют и работает прилично
  • jadx, супер чистые петли, преобразует Dex непосредственно, но немного многословным
  • dex2jar + luyten, меньше ошибок, чем jd-gui, менее подробные, чем jadx
Смежные вопросы