シャオバイ、この武器を使用したい場合は、まず子午線を開く必要があります。
1.ルート、携帯電話のルート、ルートのない Android は存在しません。根経を開くことによってのみ、その後の手術を進めることができます。
2. Xused フレームワークのインストール. Xused を武器として使用したい場合は、使用する前にまずそれを拾えるようにする必要があります。
xusedBridgeApi-82.jar.jar。
これは私たちの武器です、シャオバイ、さあ、この武器の基本的な使い方を説明します。
Xused 武器を使用して packageName をインターセプトし、それを出力します。
実際、この武器は内部の強さと組み合わせてのみ最大の能力を発揮できます。
内なる力を合わせる、マスター、その方法。
心配しないで、一歩ずつ進んでいきましょう。
Xiaobai、まず第一レベルの内力の操作ツボを教えましょう。よく聞いてください。
まず、コンテンツを実行するための環境を用意しましょう。
(1) まず、Activity を必要としないプロジェクトをビルドします。
(2) 次に、jar パッケージをインポートします。そして右クリックしてライブラリとして追加します。
(3) Androidmanifest.xml ファイルに記入します。
<meta-data></meta-data> <meta-data></meta-data> <meta-data></meta-data>
(4) 依存関係メソッドを変更します。
jar パッケージのコンテンツは既に Xused に存在しており、Xused に存在すると競合します。再度梱包されています。
(5) 基本的な Xsolved モデルの作成
Alt Enter を使用してメソッドを実装します。
#シャオバイ、私の冗長な言葉を聞いてください。
handleLoadPackage、このメソッドは、アプリケーション パッケージをロードするときにユーザー操作を実行するために使用されます。
LoadPackageParamloadPackageParam:、このパラメータには、ロードされたアプリケーションに関するいくつかの基本情報が含まれています。
これは一言で達成できます。
XusedBridge.log("HAI_app: "loadPackageParam.packageName);
ここで、XusedBridge.log とは何かについて考えなければなりません。
podedBridge.log の出力は、xused フレームワークの起動プログラムのログ機能に出力されます。これにより、私たちも見やすくなります。
設定の最後のステップを実行しましょう。開始場所を設定します。
新しいアセット ディレクトリに新しいファイルを作成します。ファイル名は xposed_init です。
パッケージ名クラスを記述します。
APKをビルド
テストのためにインストールします。
携帯電話にインストールして再起動するだけです。
いわゆる師匠が指導するもので、練習は人それぞれです。それで。
わかりました、マスター、この簡単な方法でフィルタリングできますか?たとえば、簡単な分析システムを作成します。あるいは、これをフィルタリングすることもできます。まずは自分で試してみます。
このランニング パスを通じて、登録が分析され、フィルタリングされます。
簡単に試してみてください。
昨日学習した Java 文字列の部分文字列を使用して文字列をフィルタリングします。
##私はマスターを知っています。
ステーク情報の収集
マスター、私たちは普段どのような情報を収集していますか?
まあ、通常は、
1. 木杭のパッケージ名
2. 木杭の単純なロジック....
を収集する必要があります。
小バイ、これを自分で集めてください。
Xiaobi の操作
#パッケージ名の情報を取得します。 com.example.login
次にシンプルなロジックフォン。小白啊,收集玩了吗?
收集完了师傅。
好,我们接下来收集反编译信息。知己知彼,方能百战不殆。
首先我们来看看我们要收集的东西。
1.关键的类名。
2.关键的函数位置。
来用Android Killer武器反编译木桩。
定位。
查看类名,进行记录。
小白,看清楚,是这个样子进行记录。
原来是这样。com/example/login/MainActivity;
但是我们要改成这样的。com.example.login.MainActivity
现在就需要定位到关键函数了。
这个login就是我们要Hook住的函数啦。
Ljava/lang/String;Ljava/lang/String;从这里我们可以看到是两个输入内容。并且类型是String。我们现在要做的就是要hook住这个输出,然后对其进行输出。
好了,小白,前期资料收集的差不多了。我现在要发功了,要看清楚我的使用哦。
先把环境调整好。
然后先做一个简单的过滤。
这个时候,收集的包名就排上用场了。
因为是hook的是方法,所以我们这里使用一个方法。
第一个参数,要hook的包名+方法名,这个也是我们收集好的。
第二个参数不动
第三个参数方法名
第四个参数 输入的参数
我们有两个String类型的参数,所以才这样写
最后一个参数,就是做一个监听。可以监听这个方法的使用前和使用后。
小白,一切准备你就须,看为师给你f这个木桩。
小白,你看这第一招
XposedBridge.log("ZHUZHU520:LoginName:"+param.args[0]);
这一招搞它的第一个输入。
然后再来看这一招
XposedBridge.log("ZHUZHU520:Passward:"+param.args[1]);
这一招搞它的第二个输入。
然后最后一招。
XposedBridge.log("ZHUZHU520:end???:"+param.getResult());
这一招就是拦截返回值。
小白啊,这里有一个需要思考的内容。
这样hook的意义或者作用是什么?
师傅,我觉得首先,这样可以拦截下输入的参数,还有返回的值。如果在hook里做一个转发信息的技能。那不就可以成功的对登录账户的人进行账号和密码的获取。
这不就是和钓鱼一样了嘛。
我觉得这是一个很大的漏洞,如果登录厂商没有做相应的处理,那这里我可以拿这个搞死他。
好了,小白,你说的很对,我们现在来对这个进行下测试吧。
小白啊,你看这里我们就成功的拦截内容了。小白分配给你一个任务,使用hook f来拦截木桩,并确保不管我是否输入正确,木桩能够成功登录。
XposedBridge.log("ZHUZHU520:end???:"+param.getResult());
师傅之前使用了一个param.getResult()获取了返回值,那我是不是可以使用相同的set方法,重新对这个进行赋值啊。
根据各种方式,我们知道了这里的返回值就是Z,也就是布尔型。
说干就干,争取f掉木桩。
以上がAndroidにおけるリバースエンジニアリングの手法とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。