84 registros. Arquivo bruto: inventario.csv
| categoria | tipo | identificador | valor | exportado | evidencia | observacao |
|---|---|---|---|---|---|---|
| artefato | arquivo | APK original | C:\Users\ADM\Downloads\NFCLocator-.apk | sha256sum | 3770889 bytes; preservado sem modificacao | |
| artefato | arquivo | copia de trabalho | NFCLocator-analysis.apk | sha256sum | mesmo SHA-256 do original | |
| artefato | hash | SHA-256 | 21ccef318fed2f2013fda52603a0d3473aba1b75b8dcf0ce46f98460de98d205 | sha256sum | identidade do artefato | |
| artefato | identidade | applicationId | com.banking.trackerpro | AndroidManifest.xml; rea-inspect-android-package.json | divergente do namespace das classes | |
| artefato | identidade | namespace de classes | app.nfcsecurity.vault | apktool.yml; smali | resource package id 0x7f | |
| artefato | identidade | nome exibido | Nfc Security | res/values/strings.xml app_name | ||
| artefato | versao | versionName / versionCode | 7.28.82 / 431870 | apktool.yml | ||
| artefato | sdk | minSdk / targetSdk / compileSdk | 24 / 34 / 34 | apktool.yml + manifest | ||
| artefato | assinatura | v1+v2+v3 com 1 signer | CN=Android, OU=Mobile, O=Local, L=City, ST=SP, C=BR | evidencias/apksigner-verify.txt; evidencias/rea-apk-signature.json | autoassinado RSA-2048 SHA-256 06c08cb7... | |
| artefato | dex | classes.dex | 3597808 bytes; 3287 class_defs; 27619 metodos; 21858 strings | parse do cabecalho DEX | unico dex | |
| artefato | recurso | resources.arsc | 937140 bytes; 728 entradas; 110 locales | evidencias/tree-apk.txt | ||
| artefato | ausencia | lib/ / OBB / split APK | inexistentes | unzip -Z1 | nenhum codigo nativo; APK unico | |
| permissao | uses-permission | android.permission.INTERNET | AndroidManifest.xml | necessaria ao WebSocket | ||
| permissao | uses-permission | android.permission.NFC | AndroidManifest.xml | central: le o chip do cartao | ||
| permissao | uses-permission | android.permission.FOREGROUND_SERVICE | AndroidManifest.xml | declarada sem nenhum service | ||
| permissao | permission | app.nfcsecurity.vault.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION | protectionLevel=signature | AndroidManifest.xml | gerada por AndroidX/AGP | |
| permissao | uses-feature | android.hardware.nfc | required=true | AndroidManifest.xml | app so instala com NFC | |
| componente | activity | app.nfcsecurity.vault.ReFragment | launchMode singleTask; MAIN+LAUNCHER; TECH_DISCOVERED | true | AndroidManifest.xml linhas 10-19 | entrypoint real; recebe tag NFC em primeiro plano |
| componente | activity | app.nfcsecurity.vault.MainActivity | sem intent-filter | false | AndroidManifest.xml linha 20 | codigo morto: nenhum startActivity aponta para ela |
| componente | provider | androidx.startup.InitializationProvider | authorities com.banking.trackerpro.androidx-startup | false | AndroidManifest.xml linhas 23-27 | inicializacao AndroidX |
| componente | receiver | androidx.profileinstaller.ProfileInstallReceiver | 4 actions androidx.profileinstaller.*; permission DUMP | true | AndroidManifest.xml linhas 28-41 | biblioteca; exige permissao DUMP |
| componente | ausencia | <service> | 0 ocorrencias | grep '<service' AndroidManifest.xml | FOREGROUND_SERVICE declarada sem uso | |
| filtro | intent-filter | MAIN + LAUNCHER | AndroidManifest.xml linhas 11-14 | icone na gaveta | ||
| filtro | intent-filter | android.nfc.action.TECH_DISCOVERED + @xml/nfc_tech_filter | IsoDep / NfcA / NfcB | AndroidManifest.xml linhas 15-18 | registra para qualquer cartao ISO-DEP | |
| filtro | ausencia | deep links (VIEW + BROWSABLE) | inexistentes | AndroidManifest.xml | nao abrivel por URL | |
| filtro | ausencia | host card emulation / DELEGATION_SERVICE | inexistente | AndroidManifest.xml | nao emula cartao; le cartao real | |
| recurso | layout | activity_cardbank.xml | ConstraintLayout com WebView fullscreen | decompilado/apktool/res/layout | tela real do app | |
| recurso | layout | activity_main.xml | status do cartao + logo | decompilado/apktool/res/layout | tela de MainActivity (morta) | |
| recurso | layout | fragment_first.xml / fragment_second.xml / content_main.xml | lorem ipsum / template | decompilado/apktool/res/layout | sobras de template | |
| recurso | navigation | nav_graph.xml | com.billy.cardemv.FirstFragment / SecondFragment | decompilado/apktool/res/navigation | vazamento do nome de pacote original | |
| recurso | style | Theme.NovoNome / Base.Theme.NovoNome | parent Material3 DayNight NoActionBar | decompilado/apktool/res/values/styles.xml linhas 285 e 3065 | placeholder de rebranding | |
| recurso | xml | network_security_config.xml | cleartext=false; ancora system; sem pinning | decompilado/apktool/res/xml | ||
| recurso | xml | nfc_tech_filter.xml | IsoDep / NfcA / NfcB | decompilado/apktool/res/xml | ||
| recurso | drawable | logo.png | 265798 bytes; marca TOTAL SECURE (escudo + cadeado + cartao) | decompilado/apktool/res/drawable | fachada de seguranca | |
| recurso | string | textos PT-BR do app | Cartao Detectado / Conectado / 01 - Processando / 03 - Sem sinal / pin-4-digitos | decompilado/apktool/res/values/strings.xml | ||
| asset | arquivo | aids.txt | 279 bytes; 15 AIDs EMV | decompilado/apktool/assets/aids.txt | usado por MainActivity.loadAidsFromAssets | |
| asset | arquivo | nfc_config.dat | 25422 bytes; entropia 7.9917 bit/byte; SHA-256 5f7d129c... | armazenamento.md secao 4 | NAO referenciado no codigo; cifrado | |
| asset | arquivo | card_resources.bin | 15064 bytes; entropia 7.9876 bit/byte; SHA-256 cbb8de4b... | armazenamento.md secao 4 | NAO referenciado no codigo; cifrado | |
| codigo | activity | ReFragment.handleTagData | isoDep.transceive(APDU) + serviceClient.sendResponse() | ReFragment.java 122-136 e 172-189 | relay de APDU comprovado | |
| codigo | classe | defpackage/vo5bwh | cliente WebSocket + fila + reconexao a cada 3s | vo5bwh.java | canal do relay e do PIN | |
| codigo | classe | defpackage/vn9w9z8k | WebSocketListener; parse de direction=request | vn9w9z8k.java | recebe APDU do servidor | |
| codigo | classe | defpackage/bs | cofre de URLs: reversao + base64/XOR chave 42/31/55/13 | bs.java | inclui infra legada cupworldcup.site | |
| codigo | classe | defpackage/bd | WebViewClient que injeta JS de captura de PIN | bd.java onPageFinished | ||
| codigo | classe | defpackage/cd | @JavascriptInterface 'Android' -> sendPin | cd.java | extrai pin= da URL | |
| codigo | metodo | MainActivity.injectTrack2Data | substitui tag EMV 0x57 por Track-2 injetado | MainActivity.java 193-195 | manipulacao de dados do cartao | |
| codigo | metodo | MainActivity.modifyCtqForPinBypass | 9F6B -> 02 80 | MainActivity.java 367-369 | indicio de bypass de CVM/PIN | |
| codigo | constante | MainActivity.ACCEPT_ANY_AID | true | MainActivity.java 32 e 76-81 | nenhuma validacao de AID | |
| codigo | classe | com.totalsecure.utils.UtilZ0Y480 | decode() inverte string (+4 helpers numericos) | UtilZ0Y480.java | ofuscacao de strings | |
| codigo | ausencia | SharedPreferences / Room / Keystore / DataStore | 0 ocorrencias no app | grep nas fontes JADX | sem persistencia local | |
| codigo | ausencia | DexClassLoader / System.loadLibrary | 0 ocorrencias no app | grep nas fontes JADX | sem carregamento dinamico nem codigo nativo | |
| rede | endpoint | GET https://dashboard.gripe/?step=<etapa>&session_id=<id> | etapas: vazio / cartao-aproximado / finalizado | bs.getWebUrl; ReFragment.goStep | sem autenticacao | |
| rede | endpoint | WSS wss://dashboard.gripe/ws-relay | pingInterval 15s; reconexao agendada 3s | bs.getWsUrl; vo5bwh.java | canal de APDU e PIN; sem auth | |
| rede | endpoint | GET https://dashboard.gripe/api/status | - | bs.getPanelStatusUrl; MainActivity.painelStatusUrl | declarado e nunca usado | |
| rede | endpoint | WSS wss://ws.cupworldcup.site | - | bs._a (base64+XOR) | codigo morto | |
| rede | endpoint | GET https://web.cupworldcup.site | - | bs._b / bs._c (base64+XOR) | codigo morto | |
| rede | endpoint | GET https://api.cupworldcup.site/api/status | - | bs._d (base64+XOR) | codigo morto | |
| rede | mensagem | cliente -> servidor: identidade | {"role":"IsoDep","deviceReady":bool,"id":session} | vn9w9z8k.onOpen | ||
| rede | mensagem | cliente -> servidor: status | {"session","type":"deviceStatus","deviceReady"} | vo5bwh.sendDeviceStatus | ||
| rede | mensagem | cliente -> servidor: PIN | {"session","type":"pin","deviceReady","pin":"4 ou 6 digitos"} | vo5bwh.sendPin | PIN em claro dentro do TLS | |
| rede | mensagem | cliente -> servidor: resposta APDU | {"session","deviceReady","data":HEX,"direction":"response"} | vo5bwh.sendResponse | ||
| rede | mensagem | servidor -> cliente: request APDU | {"direction":"request","data":HEX} | vn9w9z8k.onMessage | executado no chip via transceive | |
| rede | sdk | OkHttp 4.9.3 (+ Okio) | - | okhttp3/internal/Util.java:82 userAgent | sem header, sem token, sem pinning | |
| rede | ausencia | credenciais no DEX | 0 (Bearer / token / api_key / secret / password) | varredura de 21858 strings do DEX | modelo de confianca nao usa autenticacao | |
| lib | framework | AndroidX + Material Components | 111 + 90 classes | contagem por pacote | UI e tema | |
| lib | framework | org.json | 22 classes | contagem por pacote | montagem das mensagens WS | |
| lib | framework | Guava (ofuscado) | classe aiy8f7asu0y549vxtx = AbstractFuture | smali/aiy8f7asu0y549vxtx.smali | lib achatada no pacote default | |
| lib | ausencia | kotlin.Metadata | 0 anotacoes | grep 'Lkotlin/Metadata;' smali | metadados removidos pelo ofuscador | |
| lib | ausencia | Firebase / Facebook / analytics / push | inexistentes | listagem de pacotes | sem telemetria de terceiros | |
| reconstrucao | artefato | NFCLocator-rebuilt-unsigned.apk | 3668797 bytes | apktool b | recompilado de smali + recursos | |
| reconstrucao | artefato | NFCLocator-rebuilt-signed.apk | assinado com analysis.keystore | apksigner verify OK | ||
| reconstrucao | verificacao | resources.arsc byte-identico | 937140 bytes; SHA-256 igual ao original | comparacao em Python | fidelidade total dos recursos | |
| reconstrucao | verificacao | classes.dex estrutural | 3287 classes / 27619 metodos / 21858 strings / 4229 tipos | comparacao em Python | bytes diferentes (re-encodamento smali) | |
| reconstrucao | ausencia | projeto Gradle compilavel | nao recuperavel | limitacoes.md secao 4 | sem fontes nem metadados de build | |
| evidencia | arquivo | evidencias/rea-inspect-android-package.json | manifest + permissoes + componentes (providers jadx 0.7.1) | REA CLI | ||
| evidencia | arquivo | evidencias/rea-apk-signature.json | esquemas v1/v2/v3 + certificado + digests | REA CLI | ||
| evidencia | arquivo | evidencias/rea-decode-resources.json | manifest legivel + 110 locales + strings | REA CLI com apktool 3.0.3 | ||
| evidencia | arquivo | evidencias/rea-class-refragment.json | inventario de membros de ReFragment | REA CLI | ||
| evidencia | arquivo | evidencias/rea-search-nfcsecurity.json | 4 classes do pacote do app | REA CLI | ||
| evidencia | arquivo | evidencias/apksigner-verify.txt | verificacao v1/v2/v3 e certificado | build-tools 36.1.0 | ||
| evidencia | arquivo | evidencias/jadx-decompile.log | 3028 java + 7 erros | jadx 1.5.6 | ||
| evidencia | arquivo | evidencias/tree-apk.txt | arvore e contagem por diretorio | unzip -Z1 | ||
| evidencia | arquivo | evidencias/zip-listing.txt | listagem completa das 728 entradas | unzip -l | ||
| evidencia | arquivo | evidencias/proxy-validacao.txt | IP de saida 148.227.87.37 - Sao Paulo/BR | ipinfo.io via proxy | credenciais mascaradas | |
| evidencia | arquivo | evidencias/smali-reachable.json | grafo de alcance a partir das 3 activities | tools/smali_reach.py | ressalva: grafo denso por ofuscacao |