APK / PRE-INSTALL SAFETY CHECK

野良APKは安全?インストール前のウイルスチェック手順

APKはZIP形式のAndroidアプリです。Karuzipで中身を確認できても、悪意の有無は判定できません。配布元、公式ハッシュ、署名指紋、権限、スキャン結果、Play Protectを重ね、確認できなければインストールしません。

最終更新: 2026年8月1日 · 執筆・検証: Karuzip 開発チーム
確認環境: Windows 11 / Node.js 24.12.0 / Karuzip v1.4.0開発版と同じ同梱7-Zip 25.01 / OpenSSL 3.5.4。Android SDK公式apksignerは未導入。

先に結論

1つの検査だけで「安全」とは言い切れません。 まず配布元と公式のSHA-256を確認し、Android SDKのapksignerで署名を検証して証明書指紋を信頼できる基準値と比べます。権限、スキャン結果、Play Protectも重ね、出所や指紋を確認できないAPKは入れないのが停止条件です。

30秒で判断する:1つでも当てはまればインストールを止める

野良APKは、Google Play以外のWebサイト、ファイル共有、メールなどから取得するAPKを指す通称です。野良APKがすべて悪意を持つわけではありませんが、ストア側の審査や配布経路に代わる根拠を利用者が確認する必要があります。

インストールを止める条件
確認点止める状態次にすること
配布元開発元との関係を確認できない、URLが似せられている公式サイトや公式リポジトリから入り直す
SHA-256公式値がない、または値が一致しない一致しないファイルは削除し、再取得する
署名apksignerが失敗する改変・破損・非対応条件を切り分けるまで入れない
証明書指紋信頼できる旧版・公式掲載値と一致しない鍵変更の公式告知を確認できなければ入れない
要求権限用途に説明できないSMS、アクセシビリティ、端末管理等を求める開発元の説明とAndroid設定を確認する
警告Play Protectや端末が有害・不明として警告する保護機能を切って迂回しない
『HTTPSだから』『GitHubにあるから』『ダウンロード数が多いから』は、それだけでは配布者や中身を証明しません。リンク元、アカウント、Release履歴、公式サイトからの相互リンクまで見ます。

ダウンロード・一覧・展開・インストール・起動は別の状態

不安を正しく切り分けるには、APKを持っている状態と、Androidへ導入した状態を分けます。Windows上でAPKを保存し、KaruzipでZIPコンテナを一覧・テストする操作は、Androidアプリとしてインストールして起動する操作ではありません。ただし、未知のファイルを後で開く、脆弱なソフトで処理する、端末へ移して許可する、といった別のリスクは残ります。

5つの状態と起きること
状態実行されること安全確認
ダウンロードファイルが保存される入手URLとSHA-256を記録し、まだインストールしない
Karuzipで一覧・テストZIP層の項目名とCRC等を読む書庫破損は調べられるが、DEXの悪意は判定できない
展開内部ファイルを保存する展開先のDEXやXMLが自動でAndroidアプリとして動くわけではない
Androidへインストールパッケージ、署名、権限をOSが処理するPlay Protectと署名・配布元を確認する
アプリを起動コードが動作し、許可済み機能や通信を使い得る権限、通信、挙動を継続して確認する

各チェックで分かること・分からないこと

安全確認の証拠を混同しない
確認項目分かること分からないこと
配布元開発元からファイルまでの入手経路配布元のサーバーやアカウントが侵害されていない保証
SHA-2562つのファイルが同じbyte列か比較する公式値が正しいか、コードが無害か
APK署名署名後の改変有無と署名証明書証明書の持ち主が公式開発者か、コードが安全か
証明書指紋信頼できる基準値と同じ鍵か基準値の掲載元自体が信頼できない場合の本人性
Manifest・権限宣言されたコンポーネント、権限、端末条件全コードの挙動、未宣言のサーバー側処理
VirusTotal等既知の特徴や一部の疑わしい挙動に対する各エンジンの見解0件なら無害という保証、1件なら悪意という確定
Play Protect端末上のインストール時・定期的な安全確認すべての未知脅威を必ず検出する保証
KaruzipAPKのZIP層を一覧・テスト・展開できるか署名、権限、DEX、通信、マルウェアの判定

野良APKをインストールする前の8ステップ

  1. 1

    インストールせず公式配布元へ戻る

    入手URL、版番号、公開日を記録し、公式サイトや公式リポジトリからReleaseへ入り直します。

  2. 2

    SHA-256を比較する

    ローカルで計算し、公式が別の信頼できるページに掲載した値と完全一致するか確認します。

  3. 3

    APK署名を検証する

    Android SDKのapksigner verify --verbose --print-certsを実行し、失敗・警告・署名方式を確認します。

  4. 4

    証明書指紋を照合する

    Signer certificate SHA-256を、信頼できる旧版または公式のアプリ署名証明書と比較します。

  5. 5

    Manifestと権限を確認する

    APK Analyzerで用途に説明できない権限やコンポーネントがないか確認します。

  6. 6

    VirusTotalはハッシュから調べる

    まずSHA-256で既存レポートを検索し、0件を安全保証にせず、機密APKは通常スキャンへ送信しません。

  7. 7

    Play Protectを有効のまま使う

    端末側の警告やスキャンを確認し、警告を解除して強行しません。

  8. 8

    根拠がつながらなければ止める

    配布元、ハッシュ、署名指紋のいずれかを確認できなければインストールしません。

手順1:公式の配布元とSHA-256を確認する

最初に、検索結果の転載ページではなく、開発元の公式サイトや公式リポジトリからReleaseへ移動します。アプリ名、パッケージ名、版番号、公開日、更新履歴を照合し、配布元が掲載したSHA-256がある場合はローカル計算値と比較します。Windows PowerShellならGet-FileHash .\sample.apk -Algorithm SHA256で計算できます。

SHA-256比較の読み方
結果判断
公式値と完全一致公式値が指すファイルと同じbyte列。次に署名と指紋を確認する
1文字でも不一致別ファイル。再取得しても一致しなければインストールしない
公式値がない自分で計算した値は記録にはなるが、真正性の比較根拠にはならない
ダウンロードサイト内の値だけ一致そのサイトが用意したAPKと値の組み合わせにすぎず、公式版の証明にはならない

手順2:apksignerでAPK署名を検証し、証明書指紋を比べる

Android公式のapksignerでは、apksigner verify --verbose --print-certs "sample.apk"を実行します。成功可否、ERROR:WARNING:、v1・v2・v3等の結果を確認し、Signer #1 certificate SHA-256 digestを記録します。警告も失敗扱いにする場合は-Werrを加えます。

署名結果の判断
確認意味停止条件
Verifies対象Android範囲で署名が技術的に成立するこれだけで安全とは判断しない
署名失敗改変、破損、署名構造、対象版条件等の問題原因を確認できるまで入れない
証明書SHA-256一致比較した信頼できる旧版・公式掲載値と同じ鍵Play App Signingではアップロード証明書と取り違えない
証明書SHA-256不一致別の鍵、または正式な鍵変更公式の鍵変更告知を独立した経路で確認する
Androidでは開発者が自分で作成した証明書も使え、一般のWeb証明書のようにCAが本人性を保証する仕組みではありません。『署名あり』『署名検証成功』は、公式開発者や無害性の証明ではありません。

手順3:Manifestと要求権限を用途に照らす

APK内のAndroidManifest.xmlは通常バイナリXMLです。Karuzipでファイルの存在を確認・抽出できても、そのままでは権限一覧を読み取れません。Android StudioのAPK AnalyzerでManifestを開き、パッケージ名、版番号、コンポーネント、権限を確認します。

権限を見るときの問い
問い確認例判断の限界
機能に必要か地図に位置情報、カメラに撮影権限など必要そうでも取得後の使い方までは分からない
説明があるか公式プライバシー説明、アプリ内の利用目的説明文だけで実装が同じとは限らない
強い権限かアクセシビリティ、端末管理、SMS、他アプリ上の表示等強い権限があるだけでマルウェアとは断定しない
依存ライブラリ由来か広告、分析、通知等のSDK権限が少なくても安全とは限らない

手順4:VirusTotalは先にハッシュ検索し、0件を安全証明にしない

VirusTotalでは、まずローカルのSHA-256で既存レポートを検索します。既存結果があればファイルを再送せずに済みます。通常スキャンへ提出したファイルや結果は検査パートナー、コミュニティ、条件を満たす利用者等と共有される場合があるため、社内版、未公開版、個人情報や顧客データを含むAPKを無断でアップロードしません。

VirusTotal結果の読み方
表示読み方次の確認
0件 / undetectedその時点で各エンジンが検出意見を出していない。cleanの証明ではない分析日時、配布元、署名、権限を確認
1社のみ検出誤検知の可能性も、新しい脅威の可能性もある検出名、エンジン、再解析、同一署名の公式版を照合
複数社が近い名称で検出疑いが強まるインストールせず、配布元とセキュリティ事業者の情報を確認
timeout / failure / unsupported検査結果が出ていない0件として数えず、時間を置いて再確認
古いレポート現在の定義やサンプル評価とずれる最終分析日時とファイルSHA-256を確認
VirusTotalのPrivate Scanningは通常スキャンとは別の有料機能です。ログインしているだけで提出物が非公開になるわけではありません。

手順5:Google Play プロテクトを有効のまま使う

Google Play プロテクトは、Google Playと他の提供元のアプリをインストール時に確認し、端末を定期的にスキャンします。未知のアプリはGoogleへ送信して評価される場合があります。警告時は保護機能を切って強行せず、配布元、署名、指紋、権限へ戻ります。

Play Protectで警告が出なくても、安全の保証にはなりません。他の確認に重ねて使います。

Karuzipで確認できるのはAPKのZIP層まで

APKはZIP形式に従うAndroidアプリパッケージです。Karuzipは.apkを直接開き、AndroidManifest.xmlclasses.dexresources.arscMETA-INF/等を一覧・書庫テスト・選択解凍できます。APKをAndroidへインストールしたり、DEXやネイティブコードを実行したりはしません。

Karuzipの役割
操作できるできない
一覧APK内のファイル名、サイズ、階層を見るv2・v3署名ブロックはZIP entryではないため一覧だけでは判定不可
書庫テストZIP層のCRCや末尾欠損等を検出するAndroidアプリとして成立・安全・インストール可能とは証明しない
選択解凍Manifest、DEX、証明書関連ファイル等を個別保存するバイナリManifestの解読、DEX解析、署名検証はしない
全体解凍内部ファイルをフォルダーへ取り出すAPKの変換、修復、再署名、実行はしない

APKの開き方と内部構造だけを確認したい場合は、APKを開いて中身を見る手順へ進んでください。このページでは安全確認の判断鎖に範囲を絞ります。

固定APKで確認した:ZIPが正常でも署名や構造は別に壊れる

実測にはMIT LicenseのHelloWorldSelfAware v1.1.0を使いました。asset ID 265977330、120,512 B、SHA-256 009B4671…CC848CC41で固定し、34ファイル、展開後121,181 Bを確認しました。公式apksignerは未導入のため、記事のコマンドはAndroid公式手順として掲載し、実行済みとは扱っていません。

固定fixtureのローカル実測
試験ZIP層署名・構造側の結果
元APK一覧・テスト・全体解凍・主要6項目の選択解凍PASSv1 PKCS#7 PASS、Manifest digestと31/31 entry digest一致、v2 content digestとsigned-data署名PASS
classes.dex圧縮データを1 byte反転一覧は通るが書庫テストはCRCエラーv2署名ブロックは残るがcontent digest不一致
classes.dexを変更して再ZIP書庫テストPASSv2署名ブロック消失、v1のclasses.dex digest不一致
AndroidManifest.xmlを削除して再ZIP書庫テストPASSManifest entry欠落、v2署名ブロック消失。ZIP成功はAPK成立を示さない
末尾128 Bを削除一覧・書庫テストとも失敗ZIP末尾欠損として検出
同じbyte列を.apkから.zipへ改名サイズとSHA-256は同一署名ブロックも同一。拡張子変更は安全性を変えない
固定fixtureの証明書SHA-256はFA0B27BF…CC82F486でした。この値は実測対象を識別するための記録で、Appliberatedの法的本人性やアプリの無害性を保証する値ではありません。変異APKは検証用であり、Webサイトでは配布しません。

すでに野良APKをインストールした場合

まだ不審な挙動がなくても、出所を確認できないアプリは放置しません。Play Protectのスキャンを実行し、Androidのアプリ情報から要求・許可済みの権限、特別なアクセス、データ使用状況を確認します。必要性を説明できない場合はアンインストールし、同じ提供元のAPKを再取得して入れ直すのではなく、公式配布へ戻ります。

確認する順番
順番行動補足
1不審なアプリを起動しない警告画面を迂回しない
2Play Protectでスキャンする結果が問題なしでも他の根拠を確認する
3権限と特別なアクセスを確認するメニュー名はAndroid版・メーカーで異なる
4出所、SHA-256、署名指紋を再確認する公式基準と結び付かなければ削除する
5不審ならアンインストールし、OSとアプリを更新する認証情報を入力した場合は別の信頼できる端末からパスワード等も見直す

APKのウイルス・署名・野良アプリに関するFAQ

APKファイルのウイルスチェックは、何から始めますか?

まずインストールせず、公式配布元とSHA-256を確認します。次にapksignerの署名・証明書指紋、Manifestの権限、VirusTotal等の複数エンジン、Play Protectを順に重ねます。

VirusTotalで検出が0件なら安全ですか?

安全とは言い切れません。VirusTotalのundetectedは、そのエンジンが検出意見を出していない状態です。分析日時、配布元、署名指紋、権限も確認します。

VirusTotalで1社だけ検出されたら誤検知ですか?

誤検知とも悪意とも即断できません。検出名、エンジン、再解析結果、同じSHA-256への評価、公式版との署名指紋差を確認し、説明できるまでインストールしません。

署名検証に成功すれば安全ですか?

いいえ。署名成功は署名後の改変を検出し、署名証明書を取り出せることを示します。悪意のあるAPKも自分の鍵で署名できるため、信頼できる公式指紋との比較が必要です。

SHA-256は何と比較しますか?

開発元の公式サイト、公式Release、Play Console等の信頼できる独立経路に掲載された同じ版の値と比較します。ダウンロードサイトがAPKと一緒に載せた値だけでは公式版の証明になりません。

野良APKはすべて危険ですか?

すべてが悪意を持つとは限りません。ただし、ストアの配布経路に代わる根拠を利用者が確認する必要があります。出所や署名指紋を確認できなければ入れません。

APKをダウンロードしただけで感染しますか?

保存しただけではAndroidアプリとしてインストール・起動されません。ただし、後で実行する、別の脆弱なソフトで処理する等のリスクは残るため、開かずに出所とハッシュを確認します。

KaruzipでAPKを開いたり展開したりするとアプリが動きますか?

KaruzipはAPKをZIP系パッケージとして読み、内部ファイルを一覧・テスト・保存します。AndroidへインストールしたりDEXを実行したりしませんが、内容の無害性も判定しません。

AndroidManifest.xmlの権限だけでマルウェアを判断できますか?

判断できません。権限は用途との整合性を見る静的な手掛かりです。強い権限があっても正当な用途はあり、権限が少なくても安全とは限りません。

すでに野良APKを入れた場合はどうしますか?

起動を止め、Play Protectをスキャンし、権限と特別なアクセスを確認します。出所・ハッシュ・署名指紋を確認できない場合はアンインストールし、OSとアプリを更新します。

Karuzipで確認した条件

確認日
2026-08-01
環境
Windows 11 / Node.js 24.12.0 / Karuzip v1.4.0開発版と同じ同梱7-Zip 25.01 / OpenSSL 3.5.4。Android SDK公式apksignerは未導入。
標本
HelloWorldSelfAware v1.1.0の固定Release asset(asset ID 265977330、120,512 B、SHA-256 009B467109C4D48D4B00610B06F37F3A77EED75178FBAAE344A111ACC848CC41、MIT)。正常APKと、classes.dex圧縮データ1 byte反転、classes.dex変更後再ZIP、AndroidManifest.xml削除後再ZIP、末尾128 B欠損、同一byte列.zip改名を生成。
確認項目
34ファイル・展開121,181 B、一覧・書庫テスト・全体解凍・主要6項目の選択解凍SHA-256一致、v1 PKCS#7 CERT.RSA→CERT.SF、Manifest digest、31/31 entry digest、v2 0x0103 content digest、signed-data RSA/SHA-256署名、signer public keyと証明書SPKI一致、各負例のZIP/署名差をfail-fast gate付きで確認。

正常APKはv1/v2確認PASS。1 byte反転は一覧のみ成功・CRCとv2 digest失敗。再ZIP2種はZIPテスト成功でもv2 Signing Blockがなく、v1は変更または欠落を検出。末尾欠損は一覧/テスト失敗。同一byte列の.zip改名はサイズ・SHA-256・v2署名ブロック不変。これは無害性、配布元本人性、権限、DEX挙動、端末互換性の証明ではない。

根拠と更新方針

Windowsの操作、ZIP形式の仕様、Karuzipの機能を混同しないよう、判断ごとに根拠を分けています。

  • APK Analyzer | Android Developers developer.android.com APKのZIP形式、Manifest・DEX・resources等の構造、バイナリManifestの表示。
  • Permissions on Android | Android Developers developer.android.com インストール時・実行時・特別な権限と判断境界。
  • App signing | Android Open Source Project source.android.com 全APKの署名要件、自署証明書、CA本人確認を前提にしないこと、v1/v2/v3の概要。
  • APK Signature Scheme v2 | Android Open Source Project source.android.com ZIP Central Directory直前のSigning Blockとchunked content digest。
  • apksigner | Android Developers developer.android.com verify、--verbose、--print-certs、-Werrの公式手順と結果の範囲。
  • Google Play プロテクト | Google Play ヘルプ support.google.com インストール時と定期スキャン、他の提供元、未知アプリのGoogle送信可能性。
  • How VirusTotal works | VirusTotal docs.virustotal.com 通常提出物・結果の共有範囲。
  • The antivirus green circle | VirusTotal docs.virustotal.com undetectedをcleanやinnocuousと扱わない公式説明。
  • Private Scanning | VirusTotal docs.virustotal.com 通常提出と別の有料private scanning、共有と解析結果の違い。
  • HelloWorldSelfAware v1.1.0 Release github.com 固定fixtureのReleaseとasset。
  • HelloWorldSelfAware MIT License github.com 固定fixtureのライセンスと著作権表記。

APKをインストールせず、まずZIP層をローカルで確認

KaruzipはWindows 10 / 11向けの無料解凍・圧縮ソフトです。APKを直接一覧し、書庫テスト、全体または選択解凍ができます。署名検証やマルウェア判定は行わず、広告やバンドルもありません。

Karuzipを無料でダウンロード