ホームページ > 運用・保守 > 安全性 > Androidにおけるリバースエンジニアリングの手法とは何ですか?

Androidにおけるリバースエンジニアリングの手法とは何ですか?

WBOY
リリース: 2023-05-22 09:55:28
転載
1578 人が閲覧しました

1. 武器を入手

シャオバイ、この武器を使用したい場合は、まず子午線を開く必要があります。

1.1 子午線 (環境)

1.ルート、携帯電話のルート、ルートのない Android は存在しません。根経を開くことによってのみ、その後の手術を進めることができます。

2. Xused フレームワークのインストール. Xused を武器として使用したい場合は、使用する前にまずそれを拾えるようにする必要があります。

1.2 武器

xusedBridgeApi-82.jar.jar。

これは私たちの武器です、シャオバイ、さあ、この武器の基本的な使い方を説明します。

2. 武器のデモンストレーション

Androidにおけるリバースエンジニアリングの手法とは何ですか?

Xused 武器を使用して packageName をインターセプトし、それを出力します。

実際、この武器は内部の強さと組み合わせてのみ最大の能力を発揮できます。

内なる力を合わせる、マスター、その方法。

心配しないで、一歩ずつ進んでいきましょう。

0x02 フックの第一レベルの内力を使って練習する (Android Studio 3.0 Xused)

Xiaobai、まず第一レベルの内力の操作ツボを教えましょう。よく聞いてください。

Android Studio 3.0 基本構成

まず、コンテンツを実行するための環境を用意しましょう。

(1) まず、Activity を必要としないプロジェクトをビルドします。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

(2) 次に、jar パッケージをインポートします。そして右クリックしてライブラリとして追加します。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

(3) Androidmanifest.xml ファイルに記入します。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

  <meta-data></meta-data>
        <meta-data></meta-data>
        <meta-data></meta-data>
ログイン後にコピー

(4) 依存関係メソッドを変更します。

jar パッケージのコンテンツは既に Xused に存在しており、Xused に存在すると競合します。再度梱包されています。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

(5) 基本的な Xsolved モデルの作成

Alt Enter を使用してメソッドを実装します。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

#シャオバイ、私の冗長な言葉を聞いてください。

handleLoadPackage、このメソッドは、アプリケーション パッケージをロードするときにユーザー操作を実行するために使用されます。

LoadPackageParamloadPackageParam:、このパラメータには、ロードされたアプリケーションに関するいくつかの基本情報が含まれています。

内なる強みの実現

Androidにおけるリバースエンジニアリングの手法とは何ですか?

これは一言で達成できます。

XusedBridge.log("HAI_app: "loadPackageParam.packageName);

ここで、XusedBridge.log とは何かについて考えなければなりません。

podedBridge.log の出力は、xused フレームワークの起動プログラムのログ機能に出力されます。これにより、私たちも見やすくなります。

設定の最後のステップを実行しましょう。開始場所を設定します。

新しいアセット ディレクトリに新しいファイルを作成します。ファイル名は xposed_init です。

パッケージ名クラスを記述します。

テスト結果

APKをビルド

テストのためにインストールします。

携帯電話にインストールして再起動するだけです。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

考え方

いわゆる師匠が指導するもので、練習は人それぞれです。それで。

わかりました、マスター、この簡単な方法でフィルタリングできますか?たとえば、簡単な分析システムを作成します。あるいは、これをフィルタリングすることもできます。まずは自分で試してみます。

Xiaobi の自己修養

このランニング パスを通じて、登録が分析され、フィルタリングされます。

簡単に試してみてください。

昨日学習した Java 文字列の部分文字列を使用して文字列をフィルタリングします。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

#次にテストします。

もちろん、これについてはさらに詳しく説明することもできます。

0x03 木杭実戦演習

シャオバイ、さあ、マスターがあなたのために木杭を見つけてくれたので、私がパンチしてあげます。このフックはどのように機能し、どのように戦うのか。よく学びましょう。

##私はマスターを知っています。

ステーク情報の収集

1. 基本情報

シャオバイ、以前使用した武器を使用してこの基本情報を収集しましょう。

マスター、私たちは普段どのような情報を収集していますか?

まあ、通常は、

1. 木杭のパッケージ名

2. 木杭の単純なロジック

....
を収集する必要があります。
小バイ、これを自分で集めてください。

Xiaobi の操作

最初はパッケージ名です。武器、apkhelper を使用してください。

#パッケージ名の情報を取得します。 com.example.loginAndroidにおけるリバースエンジニアリングの手法とは何ですか?

次にシンプルなロジックフォン。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

2.反编译信息收集

小白啊,收集玩了吗?

收集完了师傅。

好,我们接下来收集反编译信息。知己知彼,方能百战不殆。

师傅的操作

首先我们来看看我们要收集的东西。

1.关键的类名。
2.关键的函数位置。

来用Android Killer武器反编译木桩。

定位。

查看类名,进行记录。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

小白,看清楚,是这个样子进行记录。

原来是这样。com/example/login/MainActivity;
但是我们要改成这样的。com.example.login.MainActivity

现在就需要定位到关键函数了。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

这个login就是我们要Hook住的函数啦。

Ljava/lang/String;Ljava/lang/String;从这里我们可以看到是两个输入内容。并且类型是String。我们现在要做的就是要hook住这个输出,然后对其进行输出。

木桩实战练习

环境搭建

好了,小白,前期资料收集的差不多了。我现在要发功了,要看清楚我的使用哦。

先把环境调整好。

然后先做一个简单的过滤。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

这个时候,收集的包名就排上用场了。

因为是hook的是方法,所以我们这里使用一个方法。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

第一个参数,要hook的包名+方法名,这个也是我们收集好的。

第二个参数不动

第三个参数方法名

第四个参数 输入的参数

我们有两个String类型的参数,所以才这样写

最后一个参数,就是做一个监听。可以监听这个方法的使用前和使用后。

f for木桩

小白,一切准备你就须,看为师给你f这个木桩。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

小白,你看这第一招

XposedBridge.log("ZHUZHU520:LoginName:"+param.args[0]);
ログイン後にコピー

这一招搞它的第一个输入。

然后再来看这一招

XposedBridge.log("ZHUZHU520:Passward:"+param.args[1]);
ログイン後にコピー

这一招搞它的第二个输入。

然后最后一招。

XposedBridge.log("ZHUZHU520:end???:"+param.getResult());
ログイン後にコピー
ログイン後にコピー

这一招就是拦截返回值。

小白啊,这里有一个需要思考的内容。

这样hook的意义或者作用是什么?

小白的思考

师傅,我觉得首先,这样可以拦截下输入的参数,还有返回的值。如果在hook里做一个转发信息的技能。那不就可以成功的对登录账户的人进行账号和密码的获取。

这不就是和钓鱼一样了嘛。

我觉得这是一个很大的漏洞,如果登录厂商没有做相应的处理,那这里我可以拿这个搞死他。

好了,小白,你说的很对,我们现在来对这个进行下测试吧。

f 木桩测试

Androidにおけるリバースエンジニアリングの手法とは何ですか?

小白啊,你看这里我们就成功的拦截内容了。小白分配给你一个任务,使用hook f来拦截木桩,并确保不管我是否输入正确,木桩能够成功登录。

0x04 木桩f进阶(小白的自我进步)

XposedBridge.log("ZHUZHU520:end???:"+param.getResult());
ログイン後にコピー
ログイン後にコピー

思考一

师傅之前使用了一个param.getResult()获取了返回值,那我是不是可以使用相同的set方法,重新对这个进行赋值啊。

根据各种方式,我们知道了这里的返回值就是Z,也就是布尔型。

说干就干,争取f掉木桩。

Androidにおけるリバースエンジニアリングの手法とは何ですか?

以上がAndroidにおけるリバースエンジニアリングの手法とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート