PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 25 → WX - Ofuscamento de código Android
WX - Ofuscamento de código Android
Started by BOLLER, Aug., 12 2017 9:05 AM - 1 reply
Registered member
3,651 messages
Popularité : +175 (223 votes)
Posted on August, 12 2017 - 9:05 AM
Bonjour,

links:

https://dexprotector.com/docs

https://github.com/dexprotector/DynamicApkProtection

https://dexprotector.com/buy

DEXPROTECTOR
STANDARD

$800
one computer license with one
year support and upgrades included

Licenciamento Padrão DexProtector

O DexProtector é licenciado por assento , ou seja, você precisa de uma licença separada para cada estação de trabalho de desenvolvedor e servidor de compilação.

A própria licença é perpétua e não tem limites para o número de aplicativos (suas instalações / usuários ativos, geografia), portanto, você pode proteger tantos aplicativos diferentes quanto necessário, com uma única licença.

As licenças padrão podem ser compradas por indivíduos e micro / pequenas empresas (menos de 10 funcionários, incluindo afiliados e organizações pai).

O DexProtector não pode ser utilizado em benefício de terceiros com licenças padrão , ou seja, proteção de software de terceiros, mesmo que tenha sido desenvolvido pela sua organização.

Use em seus aplicativos moveis

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Registered member
3,651 messages
Popularité : +175 (223 votes)
Posted on August, 12 2017 - 9:14 AM
Código WL

Procedure setNationAPK(int_nation)
ToastAffiche("Sortie/Relance requises",toastLong,cvHaut)
Nation(int_nation)
vrsettings.CodeNation = int_nation
HLitRecherche(vrlanguage,CodeNation,vrsettings.CodeNation)
vrsettings.CodeISO = vrlanguage.CodeISO
SI HModifie(vrsettings) = Faux ALORS
Erreur(HErreurInfo)
FIN



Código WL compilado e depois descompilado
public static void fWD_setNationAPK(WDObjet wDObjet) {
WDCollProc.initExecProcGlobale("setNationAPK");
        try {
            WDAPIToast.toastAffiche(WDChaineMultilangue.getString("Sortie/Relance requises", "Exit/Restart required"), 1, 0);
            WDAPIVM_Commun.nation(wDObjet.getInt());
            WDAPIHF.getFichierSansCasseNiAccent("vrsettings").m3551a("codenation").setValeur(wDObjet);
            WDAPIHF.hLitRecherche(WDAPIHF.getFichierSansCasseNiAccent("vrlanguage"), WDAPIHF.getRubriqueSansCasseNiAccent("codenation"), WDAPIHF.getFichierSansCasseNiAccent("vrsettings").m3551a("codenation"));
            WDAPIHF.getFichierSansCasseNiAccent("vrsettings").m3551a("codeiso").setValeur(WDAPIHF.getFichierSansCasseNiAccent("vrlanguage").m3551a("codeiso"));
            if (WDAPIHF.hModifie(WDAPIHF.getFichierSansCasseNiAccent("vrsettings")).opEgal(false)) {
                WDAPIDialogue.erreur(WDAPIHF.hErreurInfo().getString());
            }
            WDCollProc.finExecProcGlobale();
        } catch (Throwable th) {
            WDCollProc.finExecProcGlobale();
        }
    }


Android SDK Gradle permitem nativamente permitir Proguard ...
Na verdade o Windev Mobile utiliza Proguard de acordo com as regras definidas no PRG.DAT arquivo

...
buildTypes {
debug {
zipAlignEnabled verdadeira
minifyEnabled verdadeiro
arquivo proguardFile ( 'C: \\ Program Files \\ \\ PC SOFT WINDEV 22 \\ Programas \\ \\ FrameWork Android \\ \\ prg.dat dep')
multiDexEnabled False
}
...
# NÃO MODIFICAR
-optimizations! Code / simplificação / aritmética ,! Code / simplificação / cast ,! Campo / *,! Classe / fusão / *,! / Código de subsídio / variável! Classe / unboxing / enum
-optimizationpasses 5
-allowaccessmodification
-dontpreverify
-dontobfuscate
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontwarn android.support **.
-ignorewarnings

-keepattributes * Anotação *
-keep classe pública com.google.vending.licensing.ILicensingService
classe -keep pública com.android.vending.licensing.ILicensingService
- classe keepclasseswithmembernames * {
nativa ;
}
Classe pública * -keepclassmembers estende android.view.View {
vazio set * (***);
*** obter * ();
}
...


Mas é aconselhável usar informações de banco de dados, ips, usuarios, senhas, e outras informações dentro de uma tabela criptografada ou por um webservice. Tendo dúvidas sobre esse assunto, me chame no skype adrianoboller.

Merci

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/