なぜエンドウアジはアプリケーションのインストール完了インタフェースで広告を打つことができますか?

4514 ワード

本文はwingの地方の酒場から同期します
2018年が過ぎて、今年は何も書いていないようで、主に文章を書く年を過ぎたが、奇聞やエピソードに出会ったり、面白いものがあったりして、みんなに記録して、一緒に楽しんでいます.
IphoneXとはあまり縁がなく、また画面が切れた後、思い切ってマイケレンカスタマイズ版Android機を作りました.
うんざりの裏で、好奇心も湧いてきましたが、どうやってやったのでしょうか?インストールが完了したインタフェースに広告があるのはなぜですか?そこで,エンドウ莢からダウンロードしてインストールしたappと正常にインストールしたappを比較した.
正常なインストール
エンドウアジ取り付け
観察する
私たちを観察してみると、インストールが終わった後、同じActivityではないことがわかりました.そのため、私はDroidSwordプラグインを開けて、インストールが終わったActivityがどこが神聖なのかを観察しました.
DroidSwordでは、インストール後はシステムActivityではないことがわかります.
comです.pp.assistant.install.installfinish.InstallFinishActivity.
(PPとエンドウアジが合併した?)
何だ?なに??なぜインストール済みのActivityは彼自身のActivityなのか、システムのActivityはどこに行ったのか.やられたの?Androidは本当に安全ではありません.仮想してみてください.もし他のAppがこの技術を身につけたら、私はあるショッピングモールで美団をダウンロードして、お腹が空いていますか.それはどんなに恐ろしいことですか.
はい、これは私たちの今日の重点ではありません.私たちの今日の重点は、エンドウの莢がどのようにシステムのインストールインタフェースを乾かしたのかです.
事件を解決する
そこで私は考え始めて、これがどのように実現したのかを推測しました.通常の方法はRecevierを作って、傍受を終えて、それからシステムのインストールが完了したActivityを閉じて、自分のActivityをポップアップしますが、私はどのようにActivityを閉じますか.私は安全のため、rootとエンドウアジに補助機能を許可していないので、エンドウアジはActivityを消すことができません.これはいったい何のブラックテクノロジーですか?
そこで私はdebugの道を開けて、DroidSwordを開けて、しかも“すべてのアプリケーションをデバッグします”の機能を開けて、debugの任意の1つのAppを開くことができて、この機能はXInstallerに感謝して、本当に使いやすいため、便利なため、私はDroidSwrodの中に移植しました.
デバッグの道は広く、InstallFinishActivityからstartActivityの入り口まで、長い間悩んでいたが、システムのインストール済みActivityをどのようにkillするかは見つからなかった.
入手可能な情報は、StaticPackageReceiverが登録されているだけで、このReceiverでは、新しいインストールアプリケーションの傍受や、パッケージ名の判断を行い、最終的にエンドウアジが推奨したかどうかを判断してInstallFinishActivityを起動します.
ここで疑問があるのはまず関子を売って、どうしてエンドウの莢はエンドウの莢のインストールの応用がやっと彼のActivityを起動するかどうかを判断して、もし黒の科学技術があれば、全過程のすべてのインストールはすべて交換して、広告を売るのはエイズではありませんか?
その後、自分がインストールファイルのActivityを実現したのかと疑い始めたが、自分で実現したようでは、そうする権限はない.そしてエンドウアジのジャンプインストールページを観察すると、確かにシステムにすぎません.

com.android.packageinstaller.PackageInstallerActivity


つまり、インストール時のActivityを自分で実現していないということです.さらにDroidSwordでもエンドウアジからインストールインタフェースにジャンプしたときに別のActivityがポップアップしているのが見えません.
ああ、心配して、心配して、彼はいったいどのように実現したのか、私が何の見当もつかない時、突然意外なクリック事件があって、私にヒントを与えました:
WTF
これは何ですか.約束したエンドウの莢は自分でインストールプログラムを実現していませんか.もしかしてDroidSwordに問題があったのか?彼が表示しているのは完全にシステムのインストーラですね.そこでクリックして、エンドウアジの取り付け器を選びました.そして気づいた...
エンドウアジは意外にも安全な取り付け(推奨)を表示して、太くして、太くしなければなりません!!
広告を打ってもいいですが、私のシステムのインストーラhookを落としてもいいです.hookを落としてもいいです.あなたは意外にもユーザーをシステムの身分でインストーラを開けて、あなたの推薦の広告を受け入れるように誤導しました.シロユーザーが、うっかりクリックしてしまうと、インストールのたびに強引にエンドウの莢からの広告を受けられるとは想像できません.これもちょっと「文化人」すぎる.
ツッコミが終わって、エンドウアジの取り付け器を開けたら、気づきました.の寝槽!!!ジャンプはまだシステムのcomです.android.packageinstaller.PackageInstallerActivity、そしてDroidSwrodに捕まえられなかった、何のGay、私は今黒人の疑問符を持っています.
よし、何をしたのか分からないが、アプリをインストールするときに使うURIをグローバルに検索するしかない.結果はやはり一つの問題を発見しました.
エンドウアジのリストファイルでActivityが見つかり、システムインストーラと同じURIを受け取った.
その結果、このActivityをジャンプボードにして、システムActivityにジャンプしたに違いない.なぜDroidSwordは追跡できないのでしょうか?そこで私はこのActivityを開きました.そして発見..
彼はsetContentViewではなく、自分のwindowmanagerにnew view()を追加し、layoutParamsの幅と高さの設定の大きさはv 4で、v 4はです.
v 4は-2、-2は
 public static final int WRAP_CONTENT = -2;


つまり、このActivity根本!いいえ!大きさ!まるで1 dp Activityよりも怖いです.では、彼は何をしましたか.どのようにしてシステムのインストールに成功したページを消したのでしょうか.呼び出しスタックを追跡し続けると、最後にシステムインストールのActivityにジャンプするに違いありません.ただ、前にintentに対して包装処理をしました.
apkバージョンでは:Wandoujia_484050_web_seo_baidu_homepage.apkの混同の下で、次のクラスがあります.
.class public final Lcom/pp/installhook/e;

このクラスはエンドウアジの取り付けからActivityにジャンプし、intentを加工しました.
彼は普通のジャンプシステムにActivityをインストールするIntentをExtraに追加しました.keyはandroidです.intent.extra.RETURN_RESULT、値はtrueです.これはどんな効果があることができることを知らないで、そこで私はDemoを书いて、运行して、発见します~!!!インストールが完了したインタフェースがありません.のつまり、システムのインストールが完了したActivityは、このextraで乾かすことができます.
結果
最終的にエンドウアジがどのように実現されたのかをまとめると、まずリスナーを起こし、インストールが完了するとパッケージ名を判断して自分の広告ページを起動するかどうかを決定し、今でも疑問を解くことができます.なぜ判断するのか、判断しないほうがいいのではないでしょうか.その理由は、再外注のインストールActivityはandroidを持たないのが一般的であるからである.intent.extra.RETURN_RESULTパラメータのため、システム自体のインストール完了ページが呼び出されます.エンドウの莢が包名を判断しなければ、システムと彼自身の広告ページを同時に弾き、この時に東窓事件が発生し、したことが台の下に明らかになり、口コミに影響を与える.
私はエンドウの莢の実現に従って、自分でDemoを書いて、結果は以下のようにして、効果は一毛同じです.
考えてみてください.もしこのページが広告ページではなく、私が美団のインストールに成功したページをお腹が空いたページにしましたか(ここでは例を挙げますが、美団がお腹が空いたかどうかは関係ありません).ユーザーにとっても企業にとっても、大きな傷害です.
反省する
私はrootも補助機能に権限を与えていないので、こんなに大きな能力を持って、システムのタヌキを太子に変えることができます.それは本当に考えられません.もし私がroot権限を持っていたら?ちょうどシロユーザーがデフォルトでライセンスを通過することを選んだのだろうか.root権限を持つAppは何をしますか?細かく考えて恐れる.Androidユーザーとして、私たちはどのようにして自分を守ることができますか?
Android開発QQ群へようこそ:425983695