2016-04-24 7 views
1

aux#.smaliのようです。はsmaliファイルの名前に#記号を使用できますか?

このファイル名は、class.dexでbaksmali.jarを使用していたときに作成されました。

これはanyクラスプロパティと関連していますか(つまり、クラスがfinalの場合、この問題が発生します)。それが実行時にLauxを期待するコードでどのようにアクセスするのか - a:[Lapb;あなたはdex format specification

TypeDescriptorに許容識別子のBNF文法を見つけることができます

+0

通常、apkが難読化されている場合、このようなクラス名が表示されます。 obfuscatorは、ウィンドウ上のファイル名を 'aux'としているため、逆アセンブリを防ぐために、ウィンドウファイルシステムのクォークを利用しようとします。 – JesusFreke

答えて

1

は、あなたが見たいと思うでしょう、トップレベルのルールです。 SimpleNameには、名前の個々の部分ごとに許容されるすべての文字のリストがあります。

特に#についての質問に答えるために:はい、#SimpleNameルールで指定された許容文字です。

Laux#;Laux;のクラスは完全に無関係です。 Laux#;への参照は、該当する場合、継承の通常の規則を除き、Laux;クラスとは関係ありません。

+0

だから、私はdexファイルを逆コンパイルしてapktoolを使って再構築しようとするとエラーが発生する可能性があり、実行時にクラッシュします。このaux.smaliクラスはaux#.smaliに名前が変更されるためです。?? –

+0

いいえ、私が言ったように、 'Laux#;はまったく別のクラスです。逆アセンブルして再アセンブルすると、 'Laux;は' Laux# 'になり、 'Laux#;'は 'Laux#'になります。クラッシュした場合は、スタックトレースとdalvik/artがlogcatで生成するエラーを見てください。クラッシュに助けが必要な場合は、新しい質問を書いてください。 – JesusFreke

関連する問題