FinotiLucas / Correios-Brasil

Módulo completo consultar informações sobre o CEP, calcular o preço e os prazos das entregas das encomendas e também realizar o rastreio de multiplos produtos !
Apache License 2.0
540 stars 53 forks source link

Falha na autenticação (novamente) #60

Open ferezini opened 1 year ago

ferezini commented 1 year ago

Voltou a dar falha na autenticação, mesmo restartando o Script por aqui, com mais alguém está ocorrendo?

ils15 commented 1 year ago

Postaram um novo token aqui

REQUEST_TOKEN = ( "tE8l0X/+zoQBOGSLejnUSKS/7bymdZxNwHUdAjZ1Ersq46eFVL7gZgI/1vCVjn2I08GwmBWRv3yfC9NNyEDqh705rIcC64JJ+sSJW+jKpi4xXT/JWhD3qMJeQRSmNzbDziocdHlBJ+N7yQYe63D7mTDw12mRuwnXHXc1I7JJYty7GenkqxPomGHJvFxsc1N8wfOaXFY3P7Pf5Pf09OtIe2I5NaAS6VmfLk5J13HnEgXYAyVeYH4L9ItStp3aG0Em1MCnxm7wHqhSy6BN8Pg1J2w9ng12WSBNpmUXAeemC1SRV1dJ0T5OB2wGFce+l0vQLj2/0j8Zt5/8YQ3kZ05u3g==" )

tem que mudar para

https://proxyapp.correios.com.br/v3/app-validation"

mas o problema maior é que ta dando muita problema na conexao

aqui

ERROR:root:Erro ao buscar encomenda NL478350305BR: Cannot connect to host proxyapp.correios.com.br:443 ssl:default [Não há endereço associado com o nome]

direto

fbenatti commented 1 year ago

Boa tarde!

Obrigado por compartilhar, fiz as alterações e funcionou!

image

alehsoares commented 1 year ago

Opa.. estou com o mesmo problema.

Poderia detalhar onde é feito essa alteração?

fbenatti commented 1 year ago

Dentro do repositorio execute os seguintes comandos:

[root@centos Correios-Brasil]# find . -type f -exec sed -i 's/v2\/app-validation/v3\/app-validation/g' {} +

[root@centos Correios-Brasil]# find . -type f -exec sed -i 's|YW5kcm9pZDtici5jb20uY29ycmVpb3MucHJlYXRlbmRpbWVudG87RjMyRTI5OTc2NzA5MzU5ODU5RTBCOTdGNkY4QTQ4M0I5Qjk1MzU3ODs1LjEuMTQ=|tE8l0X/+zoQBOGSLejnUSKS/7bymdZxNwHUdAjZ1Ersq46eFVL7gZgI/1vCVjn2I08GwmBWRv3yfC9NNyEDqh705rIcC64JJ+sSJW+jKpi4xXT/JWhD3qMJeQRSmNzbDziocdHlBJ+N7yQYe63D7mTDw12mRuwnXHXc1I7JJYty7GenkqxPomGHJvFxsc1N8wfOaXFY3P7Pf5Pf09OtIe2I5NaAS6VmfLk5J13HnEgXYAyVeYH4L9ItStp3aG0Em1MCnxm7wHqhSy6BN8Pg1J2w9ng12WSBNpmUXAeemC1SRV1dJ0T5OB2wGFce+l0vQLj2/0j8Zt5/8YQ3kZ05u3g==|g' {} +

image

alehsoares commented 1 year ago

Obrigado!!

jhowbhz commented 1 year ago

Eu fiz 2 PRs lá no repo pra arrumar o pacote

https://github.com/FinotiLucas/Correios-Brasil/pulls

fbenatti commented 1 year ago

Bom dia,

Caiu novamente a autenticação, pelo retorno do pacote no /v3/validation, é falha no formato da data, alguém tem a correção?

image

GabrielRF commented 1 year ago

@fbenatti Ainda não. O requestToken aparentemente expira em 24h e ainda não há uma solução para ficar renovando isso automaticamente.

fbenatti commented 1 year ago

@GabrielRF seria viavel montar um endpont "genérico" e fazer o POST do novo token? Se sim, posso montar um endpoint para postar o token gerado!

andersonmendess commented 1 year ago

@GabrielRF seria viavel montar um endpont "genérico" e fazer o POST do novo token? Se sim, posso montar um endpoint para postar o token gerado!

seria um bom "workaround"

fbenatti commented 1 year ago

Montei um projetinho OpenSource, vou publicar no Github assim que tiver tempo, mas segue o link com a documentação de uso https://postmyhash.com/

POST /createHash Este endpoint é utilizado para criar ou atualizar uma chave hash. A chave é única para cada par de usuário e senha.

# curl -X POST -H "Content-Type: application/json" -d \
'{"user": "meu_usuario", "password": "minha_senha", "chave": "minha_chave", "hash": "meu_hash"}' https://postmyhash.com/createHash

GET /minha_chave/ Este endpoint é utilizado para obter o valor da chave especificada.

curl -k https://postmyhash.com/minha_chave/

jhowbhz commented 1 year ago

Montei um projetinho OpenSource, vou publicar no Github assim que tiver tempo, mas segue o link com a documentação de uso https://postmyhash.com/

POST /createHash Este endpoint é utilizado para criar ou atualizar uma chave hash. A chave é única para cada par de usuário e senha.

# curl -X POST -H "Content-Type: application/json" -d \
'{"user": "meu_usuario", "password": "minha_senha", "chave": "minha_chave", "hash": "meu_hash"}' https://postmyhash.com/createHash

GET /minha_chave/ Este endpoint é utilizado para obter o valor da chave especificada.

curl -k https://postmyhash.com/minha_chave/

Onde eu encontro o usuario e senha? rsrsrs

fbenatti commented 1 year ago

La na documentação eu explico, mas quando vc cria a chave, o user e senha é definido por você mesmo, assim uma pessoa não poderá alterar a chave de outro projeto sem ter o usuário e senha.

GabrielRF commented 1 year ago

@fbenatti

Montei um projetinho OpenSource, vou publicar no Github assim que tiver tempo, mas segue o link com a documentação de uso https://postmyhash.com/

Open, porém fechado. kkkk

Não é mais fácil ensinar a todos como que obter um token? Vai que você decide não pagar mais o domínio ou a máquina na Digital Ocean..

fbenatti commented 1 year ago

@GabrielRF, eu não sou o proprietario do TOKEN, apenas criei esse workaround para facilitar o uso, até que se ache uma solução definitiva. Suas colocações estão corretas. E claro, isso se o pessoal quiser usar o workaround, caso eles não queiram, dai teremos que aguardar a solução definitiva.

ils15 commented 1 year ago

@GabrielRF, eu não sou o proprietario do TOKEN, apenas criei esse workaround para facilitar o uso, até que se ache uma solução definitiva. Suas colocações estão corretas.

de quem é o Token afinal? no caso a gente vai conseguir ter acesso a geraçao do token a hora que quiser de graça? Vai ter restriçao de uso? ainda nao entendi Vi que tem um dominio associado e uma maquina virtual paga a ideia é a galera rachar esses custos para ter acesso ao token?

fbenatti commented 1 year ago

@ils15, pensei que fosse, você, onde você obteve ac

Postaram um novo token aqui

REQUEST_TOKEN = ( "tE8l0X/+zoQBOGSLejnUSKS/7bymdZxNwHUdAjZ1Ersq46eFVL7gZgI/1vCVjn2I08GwmBWRv3yfC9NNyEDqh705rIcC64JJ+sSJW+jKpi4xXT/JWhD3qMJeQRSmNzbDziocdHlBJ+N7yQYe63D7mTDw12mRuwnXHXc1I7JJYty7GenkqxPomGHJvFxsc1N8wfOaXFY3P7Pf5Pf09OtIe2I5NaAS6VmfLk5J13HnEgXYAyVeYH4L9ItStp3aG0Em1MCnxm7wHqhSy6BN8Pg1J2w9ng12WSBNpmUXAeemC1SRV1dJ0T5OB2wGFce+l0vQLj2/0j8Zt5/8YQ3kZ05u3g==" )

tem que mudar para

https://proxyapp.correios.com.br/v3/app-validation"

mas o problema maior é que ta dando muita problema na conexao

aqui

ERROR:root:Erro ao buscar encomenda NL478350305BR: Cannot connect to host proxyapp.correios.com.br:443 ssl:default [Não há endereço associado com o nome]

direto

@ils15, pensei que fosse você, onde você conseguiu esse novo token?

ils15 commented 1 year ago

@ils15, pensei que fosse, você, onde você obteve ac

Postaram um novo token aqui REQUEST_TOKEN = ( "tE8l0X/+zoQBOGSLejnUSKS/7bymdZxNwHUdAjZ1Ersq46eFVL7gZgI/1vCVjn2I08GwmBWRv3yfC9NNyEDqh705rIcC64JJ+sSJW+jKpi4xXT/JWhD3qMJeQRSmNzbDziocdHlBJ+N7yQYe63D7mTDw12mRuwnXHXc1I7JJYty7GenkqxPomGHJvFxsc1N8wfOaXFY3P7Pf5Pf09OtIe2I5NaAS6VmfLk5J13HnEgXYAyVeYH4L9ItStp3aG0Em1MCnxm7wHqhSy6BN8Pg1J2w9ng12WSBNpmUXAeemC1SRV1dJ0T5OB2wGFce+l0vQLj2/0j8Zt5/8YQ3kZ05u3g==" ) tem que mudar para https://proxyapp.correios.com.br/v3/app-validation" mas o problema maior é que ta dando muita problema na conexao aqui ERROR:root:Erro ao buscar encomenda NL478350305BR: Cannot connect to host proxyapp.correios.com.br:443 ssl:default [Não há endereço associado com o nome] direto

@ils15, pensei que fosse você, onde você conseguiu esse novo token?

postaram aqui

andersonmendess commented 1 year ago

subi um endpoint temporario pra gente usar os tokens gerados manualmente.

https://correios-auth-token.andersu.dev/

ils15 commented 1 year ago

infelizmente nao tem nenhum token funcionando (pelo menos nenhum que eu tenha encontrado)

GabrielRF commented 1 year ago

F

andersonmendess commented 1 year ago

F

guilhermelirio commented 1 year ago

Postaram um novo token aqui

REQUEST_TOKEN = ( "tE8l0X/+zoQBOGSLejnUSKS/7bymdZxNwHUdAjZ1Ersq46eFVL7gZgI/1vCVjn2I08GwmBWRv3yfC9NNyEDqh705rIcC64JJ+sSJW+jKpi4xXT/JWhD3qMJeQRSmNzbDziocdHlBJ+N7yQYe63D7mTDw12mRuwnXHXc1I7JJYty7GenkqxPomGHJvFxsc1N8wfOaXFY3P7Pf5Pf09OtIe2I5NaAS6VmfLk5J13HnEgXYAyVeYH4L9ItStp3aG0Em1MCnxm7wHqhSy6BN8Pg1J2w9ng12WSBNpmUXAeemC1SRV1dJ0T5OB2wGFce+l0vQLj2/0j8Zt5/8YQ3kZ05u3g==" )

tem que mudar para

https://proxyapp.correios.com.br/v3/app-validation"

mas o problema maior é que ta dando muita problema na conexao

aqui

ERROR:root:Erro ao buscar encomenda NL478350305BR: Cannot connect to host proxyapp.correios.com.br:443 ssl:default [Não há endereço associado com o nome]

direto

Testei AGORA e está funcionando lindamente! Obrigado!

tegila commented 1 year ago

Dessa vez parece que está mais difícil, vou instalar uma vm pra debugger android aqui e entrar na brincadeira.

jhowbhz commented 1 year ago

Dessa vez parece que está mais difícil, vou instalar uma vm pra debugger android aqui e entrar na brincadeira.

Meu token nao expirou até hoje hueuheuhhe segue funcionando normalmente

ferezini commented 1 year ago

agora parece q o token expirou

andersonmendess commented 1 year ago

WoAH5n3OQui/naI7zBWVOEOLbYx7xlm/yvA9QPGEBW4g2Z9IcshdF7dD7NlPRTrpi6tgZZ88kOQTm6ZE6Q0Wk5LTprrXP2jatpIAr8/1nKWRbwvv9+iSbpTFo18pqLow89197siHy39XrYJDPZj34t0pUx7rFiTEUxAvkbA8GhPDkcB42oaJE9YL8kNezlgzW1Zn7LGEnYQ95uDpm6V69At7Vh/tqrIaLlCPwlMFFoIfvhSF2Etxo4+6EOSjMSubEN7FW378d29UCE6BpRdUnz1viQCyZ4LbIHijtAtczNl+SF0GGpivEi0x6aeFQbq9GGJXdEMiLW/68dT+M3Rx0A==

jhowbhz commented 1 year ago

agora parece q o token expirou

agora parece q o token expirou

expirou mesmo, mas já mandaram um novo ! \o/

ferezini commented 12 months ago

agora parece q o token expirou

agora parece q o token expirou

expirou mesmo, mas já mandaram um novo ! \o/

já expirou

tecomanow commented 12 months ago

Estive tentando instalar a versão 5.1.17 do app dos correios no emulador para dar uma olhada usando o HTTP ToolKit, mas sem sucesso. A nova versão só tem disponível na web via xapk e eu até consigo instalar, mas o app quebra ao iniciar.

jhowbhz commented 12 months ago

Estive tentando instalar a versão 5.1.17 do app dos correios no emulador para dar uma olhada usando o HTTP ToolKit, mas sem sucesso. A nova versão só tem disponível na web via xapk e eu até consigo instalar, mas o app quebra ao iniciar.

Eu consegui, olha o que eu achei, é util?

image

guilhermelirio commented 12 months ago

Estive tentando instalar a versão 5.1.17 do app dos correios no emulador para dar uma olhada usando o HTTP ToolKit, mas sem sucesso. A nova versão só tem disponível na web via xapk e eu até consigo instalar, mas o app quebra ao iniciar.

Eu consegui, olha o que eu achei, é util?

image

Aqui tentei e deu esse erro:

{
    "error": {
        "code": 403,
        "message": "The request is missing a valid API key.",
        "status": "PERMISSION_DENIED"
    }
}
andersonmendess commented 12 months ago

Estive tentando instalar a versão 5.1.17 do app dos correios no emulador para dar uma olhada usando o HTTP ToolKit, mas sem sucesso. A nova versão só tem disponível na web via xapk e eu até consigo instalar, mas o app quebra ao iniciar.

Eu consegui, olha o que eu achei, é util?

image

Não tem relação com o token dos correios. São métricas do firebase.

jhowbhz commented 12 months ago

Estive tentando instalar a versão 5.1.17 do app dos correios no emulador para dar uma olhada usando o HTTP ToolKit, mas sem sucesso. A nova versão só tem disponível na web via xapk e eu até consigo instalar, mas o app quebra ao iniciar.

Eu consegui, olha o que eu achei, é util?

image

Não tem relação com o token dos correios.

São métricas do firebase.

Resolvi postar né, vai que é útil... rsrsrs

andersonmendess commented 12 months ago

subi um endpoint temporario pra gente usar os tokens gerados manualmente.

https://correios-auth-token.andersu.dev/

Atualizei

jhowbhz commented 12 months ago

subi um endpoint temporario pra gente usar os tokens gerados manualmente.

https://correios-auth-token.andersu.dev/

Atualizei

Como assim gerado manualmente? Como você gera ele manualmente? Da pra automatizar não?

andersonmendess commented 12 months ago

subi um endpoint temporario pra gente usar os tokens gerados manualmente.

https://correios-auth-token.andersu.dev/

Atualizei

Como assim gerado manualmente? Como você gera ele manualmente? Da pra automatizar não?

Gerado pelo método clássico, HTTP Toolkit. Até então eu não sei alguma forma de automatizar.

jhowbhz commented 12 months ago

Eles estão usando o Bouncy Castle. Parece ser um RSA SHA256 com chaves de encriptação.

Mas essa chave estaria onde?

jhowbhz commented 12 months ago

Eles estão usando o Bouncy Castle. Parece ser um RSA SHA256 com chaves de encriptação.

Mas essa chave estaria onde?

Dentro do binário do app.

Então vou descompilar ele rsrs

ferezini commented 11 months ago

Alguém com um token valido? Agradeço

jhowbhz commented 11 months ago

Galera, tava aqui descompilando o APK, eu não manjo nada de Java nem Kotlin....

image

image

image

image

Esse é o mais interessante ao meu ver... image

Consegui também essa chave, veja se é util

stamp-cert-sha256 https://easyupload.io/lmzlfa

Será que um desses caras, tem alguma relação com o que estamos procurando?

jhowbhz commented 11 months ago

Adicionando mais um print útil....

image

image

image

Alguem de JAVA/Kotlin pra dar uma força?

jhowbhz commented 11 months ago

Finalmente achei o arquivo que faz o token @GabrielRF consegue dar uma força igual da ultima vez?

Criei um grupo pra gente discutir isso no WhatsApp, quem quiser ajudar é so chamar

https://chat.whatsapp.com/C12b8OJcfgR2hsFVcnf299

package e7;

import android.content.Context;
import android.content.res.Configuration;
import android.security.keystore.KeyGenParameterSpec;
import android.support.v4.media.Ao.SyQm;
import java.math.BigInteger;
import java.security.Key;
import java.security.KeyPairGenerator;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.cert.Certificate;
import java.security.spec.AlgorithmParameterSpec;
import java.util.Calendar;
import java.util.Locale;
import javax.crypto.Cipher;
import javax.security.auth.x500.X500Principal;
/* loaded from: classes.dex */
class f implements a {

    /* renamed from: a  reason: collision with root package name */
    protected final String f9105a = c();

    /* renamed from: b  reason: collision with root package name */
    protected final Context f9106b;

    public f(Context context) {
        this.f9106b = context;
        e(context);
    }

    private void d(Context context) {
        Locale locale = Locale.getDefault();
        try {
            k(Locale.ENGLISH);
            Calendar calendar = Calendar.getInstance();
            Calendar calendar2 = Calendar.getInstance();
            calendar2.add(1, 25);
            KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
            keyPairGenerator.initialize(j(context, calendar, calendar2));
            keyPairGenerator.generateKeyPair();
        } finally {
            k(locale);
        }
    }

    private void e(Context context) {
        KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
        keyStore.load(null);
        if (keyStore.getKey(this.f9105a, null) == null) {
            d(context);
        }
    }

    private PrivateKey g() {
        KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
        keyStore.load(null);
        Key key = keyStore.getKey(this.f9105a, null);
        if (key != null) {
            if (key instanceof PrivateKey) {
                return (PrivateKey) key;
            }
            throw new Exception("Not an instance of a PrivateKey");
        }
        throw new Exception("No key found under alias: " + this.f9105a);
    }

    private PublicKey h() {
        KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
        keyStore.load(null);
        Certificate certificate = keyStore.getCertificate(this.f9105a);
        if (certificate == null) {
            throw new Exception("No certificate found under alias: " + this.f9105a);
        }
        PublicKey publicKey = certificate.getPublicKey();
        if (publicKey != null) {
            return publicKey;
        }
        throw new Exception("No key found under alias: " + this.f9105a);
    }

    private void k(Locale locale) {
        Locale.setDefault(locale);
        Configuration configuration = this.f9106b.getResources().getConfiguration();
        configuration.setLocale(locale);
        this.f9106b.createConfigurationContext(configuration);
    }

    @Override // e7.a
    public byte[] a(Key key) {
        PublicKey h10 = h();
        Cipher i10 = i();
        i10.init(3, h10, f());
        return i10.wrap(key);
    }

    @Override // e7.a
    public Key b(byte[] bArr, String str) {
        PrivateKey g10 = g();
        Cipher i10 = i();
        i10.init(4, g10, f());
        return i10.unwrap(bArr, str, 3);
    }

    protected String c() {
        return this.f9106b.getPackageName() + ".FlutterSecureStoragePluginKey";
    }

    protected AlgorithmParameterSpec f() {
        return null;
    }

    protected Cipher i() {
        return Cipher.getInstance("RSA/ECB/PKCS1Padding", SyQm.iLEpbcD);
    }

    protected AlgorithmParameterSpec j(Context context, Calendar calendar, Calendar calendar2) {
        KeyGenParameterSpec.Builder builder = new KeyGenParameterSpec.Builder(this.f9105a, 3);
        return builder.setCertificateSubject(new X500Principal("CN=" + this.f9105a)).setDigests("SHA-256").setBlockModes("ECB").setEncryptionPaddings("PKCS1Padding").setCertificateSerialNumber(BigInteger.valueOf(1L)).setCertificateNotBefore(calendar.getTime()).setCertificateNotAfter(calendar2.getTime()).build();
    }
}

Mensagem secreta seria essa string? ou "secret key" VGhpcyBpcyB0aGUga2V5IGZvciBhIHNlY3VyZSBzdG9yYWdlIEFFUyBLZXkK image

Pedi o GPT pra resumir isso em um javascript

const crypto = require('crypto');

// Geração de uma chave AES (simulando uma chave armazenada)
const aesKey = crypto.randomBytes(32); // 256 bits

// Dados a serem cifrados
const plaintext = 'Esta é uma mensagem secreta';

// Cifragem usando a chave AES
const iv = crypto.randomBytes(16); // Vetor de inicialização de 128 bits
const cipher = crypto.createCipheriv('aes-256-cbc', aesKey, iv);
let encryptedData = cipher.update(plaintext, 'utf8', 'base64');
encryptedData += cipher.final('base64');

console.log('Texto cifrado:', encryptedData);

// Decifragem usando a chave AES
const decipher = crypto.createDecipheriv('aes-256-cbc', aesKey, iv);
let decryptedData = decipher.update(encryptedData, 'base64', 'utf8');
decryptedData += decipher.final('utf8');

console.log('Texto decifrado:', decryptedData);

// Geração de um par de chaves RSA (simulando a geração de chave no Android)
const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
  modulusLength: 2048,
  publicKeyEncoding: {
    type: 'pkcs1',
    format: 'pem'
  },
  privateKeyEncoding: {
    type: 'pkcs1',
    format: 'pem'
  }
});

console.log('Chave pública RSA:', publicKey);
console.log('Chave privada RSA:', privateKey);

// Assinatura e verificação de assinatura
const dataToSign = 'Dados a serem assinados';
const signature = crypto.sign('sha256', Buffer.from(dataToSign), privateKey);

console.log('Assinatura:', signature.toString('base64'));

const isVerified = crypto.verify(
  'sha256',
  Buffer.from(dataToSign),
  publicKey,
  Buffer.from(signature, 'base64')
);

console.log('Verificação de assinatura:', isVerified);

E muito parecido com a resolução da issue #53

GabrielRF commented 11 months ago

@jhowbhz Eu larguei isso já. Os Correios estão ativamente bloqueando os acessos. Não está valendo a pena tanto trabalho para corrigir um problema deles mesmos, que é a lentidão nas notificações.

jhowbhz commented 11 months ago

@jhowbhz Eu larguei isso já. Os Correios estão ativamente bloqueando os acessos. Não está valendo a pena tanto trabalho para corrigir um problema deles mesmos, que é a lentidão nas notificações.

Que pena chefe.... eu tava gostando só pelo desafio mesmo rsrsrs

leandrobattochio commented 11 months ago

Então, a API ainda existe e daria pra continuar usando, se alguém continuar de onde o @jhowbhz parou com as infos da criptografia ?

jhowbhz commented 11 months ago

Eu to aqui pra ajudar no que precisar....

tegila commented 11 months ago

Palavra chave: AndroidKeyStore Caminho: https://stackoverflow.com/questions/22378328/android-keystore-can-a-user-key-be-retrieved-by-root-if-he-setuid-to-that-user

Creio que não vale mais a pena compartilhar a resolução por aqui pois provavelmente algum espirito de p*** está fazendo o trabalho sujo para os correios e dificultando nossa integração ao inves de se ocupar em melhorar aquela pocaria de site.

Enquanto o caminho deveria ser democratizar o acesso à informação ainda há programadores que se vendem aos governos em troca de favores escusos.

De toda forma ainda continua sendo muito facil basta um pouco de determinação. Forte abraço e viva o #bitcoin ;*

leandrobattochio commented 11 months ago

@tegila

Puts, parece que o caminho é bem por aí mesmo... Eu to sem nada de android aqui no PC, fiz uma limpa. Mas eu queria mesmo era ficar quebrando essa "criptografia" até uma hora que vai ser virtualmente impossível os correios alterarem. Esses negocio de token e app de celular só chegam até um certo nível, não tem como inviabilizar totalmente.

Vai ficar na guerrinha que estamos hoje: um vai e crackeia o outro corre e arruma. Até um cansar ou chegar no limite da tecnologia mesmo.

Se eu tivesse o conhecimento necessário entraria de boa nisso, toda vez q os caras alterasse ia dar uns 10 minutos de risada, pegar um copão de breja e já ia cair de cabeça em cima pra crackear de novo kkkk

leandrobattochio commented 11 months ago

@tegila Mano, tava pensando. Será que a versão ios do app dos correios também ta guardando essa key num lugar que não da pra recuperar?