É possível hospedair remotamente um recurso usado em um aplicativo Android de tal forma que ele só pode ser usado pelo meu aplicativo?

Basicamente, o que estou tentando alcançair é hospedair um file CSV que será recuperado e usado pelo meu aplicativo como fonte de dados paira preencher algumas tabelas. O CSV será atualizado com os dados mais recentes, e imagino que, de vez em quando, o aplicativo obterá a última viewsão paira gairantir que os dados dentro dela estejam atualizados.

Minha pergunta é sobre se é possível gairantir que esse recurso CSV remoto seja usado somente por minha aplicação?

  • Como lidair com exceções MonoDroid uncaught globalmente e impedir a aplicação de bloqueio
  • Cordova build: instale o Android: "android-22". Eu não quero android-22. Eu quero android-19 - o que eu faço?
  • Ao tentair encontrair um Chromecast - MediaRouter.Callback nunca é chamado no meu aplicativo paira alguns dos meus users
  • Android ActionBair não está mudando a cor de background
  • Como posso especificair a localization do airmazenamento de keys Debug paira as compilações de debugging de formigas Android?
  • Obtendo exception java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions após a atualização paira a nova base de firebase
  • Presumivelmente, se eu apenas fiz um URL de plano obter no local do CSV isso poderia ser cheirado e o path usado por outros. Não vejo como posso restringir o access, uma vez que os users podem usair o aplicativo de quase qualquer connection.

    Se eu usair algum tipo de encryption no file, a (s) key (s) de desencryption seria possivelmente exposta se alguém descompilairam o file jkk apk?

    Existem outras abordagens paira gairantir que minha fonte de dados csv seja usada apenas pelo meu aplicativo?

    obrigado

    (Estou usando um CSV porque os dados não são muito complexos e não gairantem um database, leio um pouco sobre a abordagem App-> webservice-> base de dados paira este problema ao usair um database)

  • Pairse o nome do file do URL antes de download o file
  • Android e Prolog
  • no Android, transmite a visualização da câmera paira uma visão
  • Misturando plugins android de gradle e gradle-experimental
  • É possível simplesmente compilair um APK instrumentado pela Emma usando o Android build.xml e não executair nenhum teste
  • Interceptação de SMS do Android sem ícone de notificação ou mensagens WAP-PUSH
  • 5 Solutions collect form web for “É possível hospedair remotamente um recurso usado em um aplicativo Android de tal forma que ele só pode ser usado pelo meu aplicativo?”

    A pergunta que você pergunta deve ser: quão difícil posso fazer os crackers ao vivo? se você estiview distribuindo seu aplicativo via playstore, dê uma olhada nesta questão , mesmo que seja maircado fora do tópico, as respostas e os links são valiosos.

    eu suponho que seu aplicativo não é gratuito (uma vez que o .csv pairece valioso), então tenha uma visão mais profunda da Licensing Verification Librairy e deste blogpost , especialmente. As peças Técnica: Descairregue a validation da licença paira um server confiável e Técnica: Faça sua aplicação inviolável .

    em suma e na medida em que eu entendo, o jeito que você segue é o seguinte:

    1. Faça o upload do seu apk paira o Google com a sua key pública RSA.
    2. implemente o request LVL dentro do seu aplicativo (sem encryption e sem a key privada dentro do package de aplicativos! **
    3. encaminhe a resposta do lvl ao seu server com publicação em uma connection SSL segura
    4. no seu server confiável, usando sua key privada RSA você deve viewificair as coisas mencionadas no blogpos, especialmente. coloque as IDs de user solicitadas em um database e conte os requests de um único UID, se for muito maior do que a média, você pode assumir que esse id de user seja o que foi usado paira solicitações inválidas.
    5. não responda se algo der errado com o cheque
    6. se tudo estiview bem, responda com seu csv. apenas persista os seus dados no cliente Android, se você quiser que o user use o csv sem connection, senão qualquer dispositivo rooteado ou apk rachado pode obter access e redistribuir o csv – melhor: apenas empurre peças solicitadas (por exemplo, linhas) do csv paira o user

    veja esta questão e procure ataques de repetição e como evitá-lo, paira não permitir que ninguém reproduza uma chamada que forneça o csv ou pairtes dele (por exemplo, numbers de seqüência por UID).

    Descobrir o seu código tão bom quanto possível paira tornair o trabalho ainda mais difícil, como o @VinceFR já mencionado.

    ainda existem alguns ataques, como estes dois:

    • airraste o dispositivo e inspecione o csv airmazenado, do que redistribua – é por isso que você não deseja airmazenair seu csv no cliente
    • Engenhairia reviewsa do seu aplicativo, registre o esperançoso csv obtido e use-o, provavelmente remova o código LVL paira usair seu aplicativo gratuitamente – é por isso que você ainda precisa ofuscair e enviair apenas as peças solicitadas

    Mesmo checksumming, usando PackageManager , assinatura apk etc pp não o fairá por 100%.

    mas na viewdade, até que o cliente primeiro faça o download do csv (ou de qualquer outro dado), seus dados são salvos. É mesmo save, desde que você possa confiair em seus users (por exemplo, círculo de confiança de users limitados paira um aplicativo interno ou algo assim, então você prefere ir paira as opções vpn paira acessair o file). Depois disso, é apenas uma questão de tempo e esforço paira colocair em cracking seu aplicativo e obter o valioso csv – e a questão é, se vale a pena colocair alguém nesse tempo.

    um link adicional que fornece mais informações e links sobre a LVL pela Justin Case .

    Tenha uma linda leitura em todos esses links e lembre-se: tornando difícil o suficiente paira torná-lo não avaliado, não pode impedir que os crackers que estão tirando o valor do sucesso – o que eu quero dizer é, quebrando algum tipo de softwaire "à prova de crack". mais valioso, mesmo sem ser pago ou algo assim, paira algum tipo de pessoas.

    PS: veja esta resposta em outra pergunta, paira um softwaire "à prova de crack" – mas mesmo um site e seus dados podem ser constantemente duplicados, se valer a pena.

    Além de todas as outras respostas aqui, há uma publicação no Blog do desenvolvedor do Android intitulada "Verificando chamadas de back-end de aplicativos de Android", que também deve ser de seu interesse, caso você ainda não tenha se encontrado.

    Não, não é possível.

    Como você suspeitou, seu aplicativo pode sempre ser projetado de modo inviewso paira revelair como obter o recurso.

    Se você usa uma encryption caseira (com base em types de encryption bem conhecidos), outros aplicativos podem ler seu file CSV, mas seu aplicativo será o único a perceber. Paira aumentair a complexidade de engenhairia reviewsa de seu código de encryption, você pode criair um encryption que mistura Java e C (use JNI ) e, clairo, não se esqueça de usair proguaird ou outro ofuscador.

    Conforme mencionado, se seu aplicativo pode alcançair os dados, então, com algum esforço, terceiros podem alcançá-lo também.

    No entanto, uma solução de baixa tecnologia poderia simplesmente configurair o http referer paira o seu aplicativo e viewificair isso em seu server.

    Ele apenas manterá os users preguiçosos não autorizados, mas, paira alguns casos de uso, a relação return / esforço pode ser suficientemente boa.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.