domingo, 14 de setembro de 2014

Bypass CAPTCHA da Receita Federal

Sem nada pra fazer , me veio à ideia de tentar burlar o CAPTCHA do site da receita D: , fui vendo o que poderia ser feito , a primeira coisa que pensei foi pegar o captcha e usar o Tesseract, pra transformar as letras/números da imagem em texto , mas depois de ouvir o 'captcha sonoro' eu descobri o que eu iria fazer para dar esse bypass ...

O 'captcha sonoro' que a receita federal usa simplesmente não é um captcha , não existe nenhuma especie de ruido nem distorção no som , a ideia que eu tive foi de separar o som de cada letra/numero , já que cada um teoricamente tem o mesmo conteúdo , e depois checar qual arquivo corresponde a qual letra/numero e assim descobrir quais são as letras do captcha. Pra ter certeza peguei dois captchas diferentes , mas com algumas letras iguais e baixei o áudio para verificar se realmente era o mesmo som , fiz isso usando o audacity:


Como podem ver , na imagem do captcha as letras são um pouco diferentes , mas o áudio é o mesmo =D.
Comecei alguns testes , até tentei separar os sons usando perl , mas ficou um pouco complicado porque não tenho muito conhecimento em editar arquivo de áudio, mas achei uma solução , o SoX (Sound eXchange, the Swiss Army knife of audio manipulation) , uma tool muito boa e que tem varias opções , uma delas permite cortar o som usando como base intervalos de silencio.

Então usei o seguinte comando:
sox /tmp/captcha.wav /tmp/output.wav silence 1 0.1 1% 1 0.4 1% : newfile : restart
Esse comando só começa a gravar quando não há silencio no áudio, e para de gravar quando encontra 4 décimos, ou mais, de silencio à frente, e vai refazendo isso e criando novos arquivos de som.
Consegui separar cada arquivo de som com exito , o próximo passo era fazer isso com todos os números e letras , fiz isso 36 vezes (0-9,A-Z) e consegui separar cada um. Agora eu posso pegar o áudio , separar , e verificar qual arquivo de som ele corresponde e qual é a letra/numero associada a ele, conseguindo assim resolver o captcha , para fazer isso eu fiz checagem de hash md5 de cada arquivo de som separado , é mais pratico do que guardar 36 arquivos wav e verificar um por um.

Script: Github

Obs> *Testei + de 1000 vezes , e em todas elas não teve erro :D , mas erros podem ocorrer ...
*Você precisa do SoX para o programa funcionar corretamente.

Vídeo Demonstrativo:



Edit:

O Rafael Corazzi conseguiu uma solução nova, já que essa da postagem não funciona mais: http://pastebin.com/s2Bz7yQ2, parabéns jow.

126 comentários:

  1. Parabéns cara, muito bom.

    ResponderExcluir
  2. Estive lendo seu código para aprender, eu não consegui entender o que faz o ".shift" na linha 51 (my $audio = $ua->get('http://www.receita.fazenda.gov.br/'.shift)->content;). Pode me explicar daonde o shift vem?

    ResponderExcluir
    Respostas
    1. shift ai é o retorna o parâmetro que é passado pra função , exemplo:

      sub test { print shift; };
      test 'abcd';

      Excluir
    2. tem como fornecer o codigo para estudos?

      Excluir
  3. Bom dia!
    Fiz o teste e ele esta falhando na hora de decodificar. Ao checar os .wav gerados, percebi que o SOX não está tratando bem o corte pelo silencio. Você já fez o teste hoje para ver se está funcionando? Qual é a verrsão do SOX que você está utilizando?
    Estou utilizando o SoX v14.2.0.

    ResponderExcluir
    Respostas
    1. Aqui ainda continua funcionado , to usando o SoX v14.4.0

      Excluir
  4. é possível implementar para form php?

    ResponderExcluir
    Respostas
    1. Da sim, só precisaria de usar o sox atraves da função system

      Excluir
  5. Instalei o Sox 14.3.2 e também a libsox-fmt-all, mas em todas as consutlas que faço o script não consegue resolver nenhum captcha. Será que faltou configurar algo? A mensagem retornada é
    [*] Consultando CNPJ: (cnpj que informo)
    [+] Acessando o site da Receita Federal ...Ok !!!
    [*] Baixando arquivo de audio ...Ok !!!
    [+] Resolvendo Captcha: Erro ao resolver captcha =/

    Nenhuma tentativa obetive sucesso, por isso acho que falta eu configurar algo. Você saberia me dizer o que poderia estar faltando?

    Agradeço desde já e deixo aqui meus parabéns pelo script.

    ResponderExcluir
    Respostas
    1. Mano talvez seja a versão, pq aqui eu to usando a 14.4.0, acabei de testar e ainda continua funcionando =).
      Olha o print: http://goo.gl/LY8GGa
      Você pode baixar a versão que eu to usando aqui: http://sourceforge.net/projects/sox/files/sox/

      Excluir
  6. Parabens cara!
    Muito util esse programa!

    ResponderExcluir
  7. Ele so está me retornando a primeira letra/número do captcha ....

    Deixo meus parabens pelo script , muito bom ^-^

    ResponderExcluir
  8. Bom dia, muito bom funciona perfeitamente, gostaria de saber se tem como fazer com o www.nfe.receita.gov.br

    ResponderExcluir
    Respostas
    1. Eu acho que dá, apesar de ter ruídos no som, eu ia ter que fazer algumas modificações no script pra tirar esse ruido.

      Excluir
  9. arrumando o link http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=

    ResponderExcluir
  10. Mto bom post! Parabens! Obrigado por dividir essa experiência.

    ResponderExcluir
  11. Incluiram o ruido no captcha....vai ser dificil limpar o som....;/

    ResponderExcluir
    Respostas
    1. Pior que é em kkkkkkkkkkkkkkkk, acho que alguém de lá viu essa postagem kkkkkkkk

      Excluir
  12. Você estragou a brincadeira de quem já tinha um script desses. Certos serviços são extremamente úteis para automação comercial, ninguém pode emitir uma simples nota fiscal para alguém sem verificar se ela existe, ao menos o Correio já criou vergonha na cara para criar webservices. Se a receita quisesse evitar abusos faria o CAPTCHA ficar mais difícil ou começaria a atrasar as respostas somente quando notasse que o acesso está sendo feito por um robô e gerando sobrecarga ou disponibilizaria webservices e controlaria a carga das consultas. Até ontem o som com ruído ainda funcionava, até para isso se apertaram e bloquearam. Nas imagens eu não consigo diferenciar C de G e E de F nem pessoalmente. Quanto ao Tesseract, até um tempo atrás a taxa de acerto ficava em torno de 30% por OCR, mas mudaram um pouco a imagem também, agora deve ser até menor. Nem o reCAPTCHA é inquebrável, mas você precisa de um canhão ao invés de um script.

    ResponderExcluir
    Respostas
    1. Mais cedo ou mais tarde alguém ia acabar postando como faz...

      Excluir
  13. Tem um fdp me enchendo o saco, me chamando até de PTista kkkkkkkkkkkkk, se tu perdeu dinheiro foda-se é seu.

    ResponderExcluir
  14. Olá Amigo! Muito bom seu script! Para CNPJ a voz da gravação está limpinha!

    Porém, desde 03/11 a receita federal alterou a página do CPF. Não faço idéia de como fazer para pegar agora...

    ResponderExcluir
  15. Bom dia Amigo,

    Gostaríamos de utilizar esse método para agilizar nossos cadastros, porém os captchas com ruídos não estão funcionando corretamente.

    Gostaria de dar continuidade ao projeto?

    Att.

    ResponderExcluir
    Respostas
    1. Acho que sim mais vou deixar pro ano que vem, vou tentar fazer agora usando o google web speech

      Excluir
  16. Mandou benzasso, MMXM_, parabéns!

    Infelizmente a RFB mudou o áudio dos captchas para as consultas de CPF e de nota fiscal. Por acaso você já chegou a gerar hashes novos para eles?

    Grato!

    ResponderExcluir
    Respostas
    1. vlw, tenho nãoo mano kkkkkkk, mas to tentando fazer algo usando o google web speech.

      Excluir
    2. Acredito que vá funfar com o Web Speech, mas vai ficar lento pacas. Não quer tentar uma aproximação da sua solução? Se o ruído que a RFB acrescenta às sílabas for randômico, podemos calcular a energia (área das curvas) total de cada uma delas e estabelecer um intervalo para interpretar cada sílaba. Acredito que seja possível assim, porque o ruído não pode ser grande demais a ponto de impedir a identificação do caracter-sílaba. O que acha?

      Excluir
  17. Não sei se ajuda, mas segue a dica pra diminuir os ruídos usando o próprio sox

    sox wav.wav -n noiseprof noise.prof
    sox wav.wav o.wav noisered noise.prof 0.21

    ResponderExcluir
    Respostas
    1. Muito boa a dica, com esse ruido reduzido da pra dar bypass usando o google speech =D

      Excluir
    2. http://www.zoharbabin.com/how-to-do-noise-reduction-using-ffmpeg-and-sox/

      Excluir
  18. Cara, você já tem os novos hashs para os áudios com ruídos? Eles são randômicos mesmo?

    ResponderExcluir
    Respostas
    1. http://www.zoharbabin.com/how-to-do-noise-reduction-using-ffmpeg-and-sox/

      Excluir
  19. Sensacional a ideia, parabéns! Uma pena terem incluído ruídos nos áudios!

    Há um tempo atrás eu tentei esta façanha de desenvolver um bypass no captcha da receita, utilizei o webgl-image-filter.js para "tentar" limpar a imagem e o OCRAD.js (https://github.com/antimatter15/ocrad.js) mas sem sucesso! :/

    Espero que tenha sucesso no o google speech!

    Abraços

    ResponderExcluir
    Respostas
    1. Pra falar a verdade faz tempo que eu não vejo esse bagulho de captcha, desde o dia que eu postei isso aqui kkkkkkkkkkkkkkkk

      Excluir
  20. ta dando erro inesperado ao acessar o site.. tem como resolver editando o script?

    ResponderExcluir
    Respostas
    1. não da mais, a receita mudou o sistema, agora só funciona o do cnpj

      Excluir
    2. cnpj nao funciona aqui tbm, da o msm erro

      Excluir
  21. mais fácil tentar pelos apps do android

    ResponderExcluir
  22. Caso alguém tenha interesse de testar um serviço, eu disponibilizei o http://www.descaptcha.com.br que é um quebra de captcha as a service.
    Estamos em fase beta e qualquer feedback é bem vindo!

    ResponderExcluir
  23. Tenho rotina parecida com essa (mas em Delphi) funcionando perfeitamente há mais de 3 anos, com multithread, tanto pra CPF quanto pra CNPJ. Pena que a receita agora está usando áudio com noise...

    ResponderExcluir
    Respostas
    1. me passa o codigo fonte, limpar o audio no sox é até tranquilo =)

      Excluir
  24. Alonso Júnior, poderia disponibilizar o fonte do programa?

    ResponderExcluir
  25. Alguem tem os audios antigos, sem noise? se tiver, por favor, entra em contato... tive uma ideia que pode acabar dando certo para ler essa disgraça....

    ResponderExcluir
    Respostas
    1. Oi, Diego!

      Não tenho os áudios sem ruído, mas acredito que não precisamos deles para resolver. Só precisaria de algumas amostras (acho que 3) de áudio de cada caractere. Por acaso você tem algo perto disso disponível?

      Excluir
    2. estou com várias ideias, e a melhor necessita do tempo exato em ms de cada caractere sem o ruido... mesmo com várias amostras, o ruido não é constante durante o arquivo todo, mas aparentemente se repete em todos os arquivos.... estou conseguindo 20-30% de sucesso.. mas com tempo de processamento de quase 40 segundos... ainda não é praticável usar assim... se alguem conseguir os audios (ou as amostras antigas) sem ruido... acredito que consigo fazer algo bem melhor.

      Excluir
    3. http://s000.tinyupload.com/index.php?file_id=83460741131382224990

      Excluir
  26. Pessoal, alguém conseguiu fazer funcionar com o novo áudio com ruídos?
    Pq mesmo eliminando parte do ruído com o sox, e separando não da certo.
    Como o tempo entre uma letra e outra é aleatório, às vezes em um arquivo ficam duas letras. Ou ainda, dois arquivos da letra A, por exemplo, tem tamanhos diferentes... aí não dá pra comparar. Alguma ideia?

    ResponderExcluir
  27. Alguem conseguiu alguma coisa?? E aee Yorga Babuscan?

    ResponderExcluir
  28. Pessoal,

    Eu preciso de amostras do áudio com ruído de cada caractere num aquivo separado para treinar o interpretador. Seria bom se fossem uns três de cada caractere. Desenvolver isso não é a minha atividade-fim, então meu tempo para fazer essa separação é pouco. Se alguém já fez isso e quiser compartilhar, eu agradeço enormemente. E é óbvio que também vou compartilhar qualquer resultado positivo que consiga.

    ResponderExcluir
  29. Mano beleza muito bom . descobri outra forma usando webservices da receita mesmo
    o que eu fiz descompilei um apk do app Pessoa Fisica.
    Chegeui ate conseguir pegar o xml da requisicao atraves do fiddler e usando meu computador como proxy e rodando o aplicativo no celular em cima do fiddler

    Chegeui nesse xml



    10d01071f56bddb9b13687dec485b010bb9b2812
    Pessoa Física
    iPhone OS
    8.3
    iPhone
    3.0


    33962067892



    E ele me gera a resposta






    00
    OK
    RAFAEL CORAZZI
    0
    REGULAR
    20/05/2015
    12:28:35
    26C4.6A87.0572.EAFF
    00





    Ate ai beleza
    bom descompilando o apk consegui chegar na parte que ele gera o token

    public static String generateHash(String paramString1, String paramString2)
    {
    paramString1 = new SecretKeySpec(paramString1.getBytes(), a);
    try
    {
    Mac localMac = Mac.getInstance(a);
    localMac.init(paramString1);
    paramString1 = localMac.doFinal(paramString2.getBytes("UTF-8"));
    paramString1 = new String(new Hex().encode(paramString1), "ISO-8859-1");
    return paramString1;
    }
    catch (NoSuchAlgorithmException paramString1)
    {
    paramString1.printStackTrace();
    return null;
    }
    catch (InvalidKeyException paramString1)
    {
    for (;;)
    {
    paramString1.printStackTrace();
    }
    }
    catch (UnsupportedEncodingException paramString1)
    {
    for (;;)
    {
    paramString1.printStackTrace();
    }
    }
    }

    Mas a porra da chave secreta esta obfuscada

    private static final String a = new ObfuscatedString(new long[] { -3731134038821562867L, 7356406032211714428L }).toString();
    public static final String HASH_KEY = new ObfuscatedString(new long[] { -7724476927428841640L, -922887229436687892L, 97717930483400992L, -4889492277118773681L, -8375416962102758999L }).toString();

    Sera que tem algum jeito para desobfuscar isso ..
    se tiver pegando a chave eu se que eles usam algoritmo SHA1 para gerar o token
    ou seja e a concat de uma chave secreta que e essa variavel HASH_KEY + o cpf consgeuindo isso da pra pesquisa direto no webservice

    https://movel01.receita.fazenda.gov.br/servicos-rfb/ConsultaCPF?wsdl

    E adeus captcha

    ResponderExcluir
    Respostas
    1. Rafael, esse serviço está disponível abertamente? Não tem que ter um e-CPF ou e-CNPJ para acessar?

      Excluir
    2. Mudaram o algoritmo de geração do token. Agora a chave tem o nome tokenAuth e o texto é diferente. Alguém sabe qual o novo algoritmo?

      Excluir
  30. Nao Nao precisa de nada de certificado e um app para android e IOS disponibilizado pela receita federal para consulta de CPF e CNPJ

    ResponderExcluir
  31. Ele nao esta aberto eu simplestemente fiz uma engenharia reversa no codigo apk , e aplicar isso em outra linguagem utilizando o webservice disponivel no app

    ResponderExcluir
  32. to fazendo em C# mas a questao e como desobfuscar essa string que esta em java

    ResponderExcluir
    Respostas
    1. as strings sao:
      HmacSHA1
      Sup3RbP4ssCr1t0grPhABr4sil

      a consultaCNPJ tem 2 versoes. com a primeira versao, pode-se usar a msm tecnica mas a chave eh diferente. preciso dessa versao decompilada pra testar. a segunda versao tem captcha. tb preciso dela decompilada pra entender como funciona.

      Excluir
    2. Vou ver se descompilo ela e ai te passo caso descubra algo.. se voce puder postar como fez o desobfuscated seria legal..

      abracos e valeu

      Excluir
    3. sure... http://pastebin.com/gMqrpd2C
      off-topic: comentar nesse blog dah uma puta fome #recaptcha

      Excluir
    4. Conseguiu as chaves para a consulta CNPJ?

      Excluir
  33. Este comentário foi removido pelo autor.

    ResponderExcluir
  34. Vou ver se acho essa versao do CNPJ pra voce
    Vou fazer o codigo para o do CPF em C# e posto aqui pra galera..
    Vou fazer em python tbm Abracos

    ResponderExcluir
  35. Ai Galera sem captcha ... O Codigo ta em C# logo mais posto em py... abracos

    Uri urlpost = new Uri("https://movel01.receita.fazenda.gov.br/servicos-rfb/ConsultaCPF");
    HttpWebRequest httpPostConsulta = (HttpWebRequest)HttpWebRequest.Create(urlpost);
    string key = "Sup3RbP4ssCr1t0grPhABr4sil";
    System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
    byte[] keyByte = encoding.GetBytes(key);
    HMACSHA1 hmacsha1 = new HMACSHA1(keyByte);

    byte[] messageBytes = encoding.GetBytes(txt_X.Text);

    byte[] hashmessage = hmacsha1.ComputeHash(messageBytes);

    string hmac2 = ByteToString(hashmessage);
    //Xml que vai para o servidor do sinesp cidadao
    StringBuilder postConsultaComParametros = new StringBuilder();
    postConsultaComParametros.Append("");
    postConsultaComParametros.Append("");
    postConsultaComParametros.Append("");
    postConsultaComParametros.Append("" + hmac2.ToLower() + "");
    postConsultaComParametros.Append("Pessoa Física");
    postConsultaComParametros.Append("iPhone OS");
    postConsultaComParametros.Append("8.3");
    postConsultaComParametros.Append("iPhone");
    postConsultaComParametros.Append("3.0");

    postConsultaComParametros.Append("");
    postConsultaComParametros.Append("");
    postConsultaComParametros.Append("");
    postConsultaComParametros.Append("" + txt_X.Text + "");
    postConsultaComParametros.Append("");
    postConsultaComParametros.Append("");

    byte[] buffer2 = Encoding.ASCII.GetBytes(postConsultaComParametros.ToString());
    httpPostConsulta.UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3";

    httpPostConsulta.CookieContainer = cookies;
    httpPostConsulta.Timeout = 900000;
    httpPostConsulta.ContentType = "text/xml;charset=UTF-8";
    httpPostConsulta.Method = "POST";
    httpPostConsulta.ContentLength = buffer2.Length;


    Stream PostData = httpPostConsulta.GetRequestStream();
    PostData.Write(buffer2, 0, buffer2.Length);
    PostData.Close();




    HttpWebResponse responsePost = (HttpWebResponse)httpPostConsulta.GetResponse();
    Stream istreamPost = responsePost.GetResponseStream();
    StreamReader strRespotaUrlConsultaNFe = new StreamReader(istreamPost, Encoding.Default);

    textBox1.Text = strRespotaUrlConsultaNFe.ReadToEnd();

    ResponderExcluir
    Respostas
    1. Bom dia! Rafael Corazzi, vc saberia qual a melhor forma de quebra de Recaptcha.
      estou fazendo o estudo de quebra de recaptcha pelo som.
      hernandesmaciel@gmail.com

      Excluir
  36. vou colocar no pastebin o xml nao foi por causa da protecao do controle aqui de postagem

    ResponderExcluir
  37. Respostas
    1. Boa, B2un0 e Rafael!

      Com uma versão em Python funfando, posso portar para VBA e Ruby.

      MMXM_, tem como ligar a publicação de código aqui? Vai facilitar para a gente compartilhar nossos avanços. Pelo menos até ter maturidade suficiente para justificar jogar no Github ou no Bitbucket...

      Excluir
    2. Dei uma atualizada na postagem, muito doido Rafael e B2uno, parabéns.

      Excluir
  38. Opa Fala ai galera publiquei no pastebin o codigo em python mais ta dando um erro na hora de chamar a url usando socket o codigo ta prontinho que puder me ajudar a arrumar esse problema e postar o codigo arrumado fique a vontade

    http://pastebin.com/9maH2kTR

    ResponderExcluir
    Respostas
    1. Fiz em perl> http://pastebin.com/iah3wdiZ

      Excluir
    2. em python: http://pastebin.com/p1aLvVTR

      Excluir
    3. Hahaha, curti montes a tua versão em Perl, MMXM_!

      Excluir
    4. Daqui a pouco vai ser chamado de petista tb! rs
      Otimo trabalho.

      Excluir
  39. depois eu monto um tutorial de como quebrar o apk.. e relativamente simples e o que da pra fazer e extraordinario.. como as app android nao tem seguranca nenhuma de codigo .. Espero que nao mudem a chave auhduadhad depois desse post ..

    ResponderExcluir
    Respostas
    1. preguica de fz aqui... to supondo q a versao 2 do cnpj esconda dados da sessao nas chaves trocadas, daeh pd ser complicado de quebrar. mas se conseguir decompilar a versao 1 do apk, seria otimo. lah tem a chave do consultacnpj.

      Excluir
    2. Rafael, conseguiu encontrar a chave do ConsultaCNPJ?

      Excluir
  40. uhahsuas pior que tava mexedno no consulta de cnpj so que os caras sao fdp . nao tem todas as informacoes que tem no site ..
    e um resumo de informacoes
    ou seja so serviria para pegar cnpj e o endereco da empresa e a atividade economica principal mas to tentando quebrar o captcha da receita via ocr .. fiz um esquema para separar letra por letra do captcha ai limpo cada imagem e pego o ocr separado acho que vai ser mais facil assim pra nao ter que pegar tanta sujeira da imagem inteira quando voce comeca a limpar a imagem toda ele vai perdendo muita coisa por causa dos riscos que tem no captcha . mas assim que conseguir posto aqui

    ResponderExcluir
    Respostas
    1. Sim ja vi ja . mas e pago srsrsrsrr

      Excluir
    2. Sim rsrsrsr.....

      Me responde no gtalk

      Excluir
    3. Opa desculpa nao uso gtalk me add no skype rafael.corazzi@hotmail.com
      E como previsto receita fdp mudou de novo agora colocou a data de nascimento como parametro .. bando de fdp nem pra ajudar criando uma merda de api para consulta publica . melhorar servidor . enquanto um monte de bandido consegue criar documento falso comprar em nome de outros cpfs. eita pais de merda memo... foda vou atualizar o robo e postar de novo ausduashduahdua

      Excluir
    4. Conseguiu dar bypass na consulta cnpj?

      Excluir
  41. Pelo menos nao mudaram a chave e so acrescentar ao XML apos a tag CPF colocar a tag dataNascimento
    e concatenar o CPF + dataNascimento para gerar o Hash

    ResponderExcluir
  42. Esta gerando o erro : unexpected element (uri:"", local:"dataNascimento").
    A tag tem esse nome mesmo? Acrescentei ao hash tb e nada.

    ABs

    ResponderExcluir
  43. Este comentário foi removido pelo autor.

    ResponderExcluir
  44. Aparentemente a URL mudou....o erro do nascimento sumiu mas n traz a resposta....provavlmente a geracao do token mudou tb
    POST https://movel01.receita.fazenda.gov.br:443/servicos-rfb/v2/IRPF/cpf HTTP/1.1
    token: 0bb7b02725afb8c07849a1b4dbe8b0cebd4b4ed6
    aplicativo: Pessoa F sica
    plataforma: Android
    versao: 4.3
    dispositivo: GT-I9300
    versao_app: 4.1
    Content-Length: 39
    Content-Type: application/x-www-form-urlencoded
    Host: movel01.receita.fazenda.gov.br:443
    Connection: Keep-Alive

    cpf=11111111111&dataNascimento=04061980

    ResponderExcluir
    Respostas
    1. Alguém conseguiu resolver o problema da consulta de CPF com a nova inclusão da dataNascimento?

      Excluir
    2. O token nao mudou...so a url e as variaveis mesmo....mas o primeiro teste que fiz ele so retorna null com codigo de erro 99

      Excluir
    3. Pra mim está dando o mesmo erro, mas acredito que alguma que identifica o Android, pois o app do iPhone não está funcionando

      Excluir
    4. Mudaram o algoritmo de geração do token. Agora a chave tem o nome tokenAuth e o texto é diferente. Alguém sabe qual o novo algoritmo?

      Excluir
  45. Galera to precisando fazer driblar o captcha da receita pra consultar NFE direto do sistema... por favor!! algueemmm!!!
    http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=

    skype: junior.jaru

    ResponderExcluir
    Respostas
    1. Galera to precisando fazer driblar em DELPHI o captcha da receita pra consultar NFE direto do sistema... por favor!! algueemmm!!!
      http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=

      skype: junior.jaru

      Excluir
  46. Ae galera ta arrumado o programa da consulta CPF


    http://pastebin.com/8AbaFS9c

    Ele mudaram tudo menos o token agora a resposta vem em JSON

    ResponderExcluir
    Respostas
    1. Este comentário foi removido pelo autor.

      Excluir
    2. Rafa tem como entrar em contato

      Excluir
    3. Mudaram o algoritmo de geração do token. Agora a chave tem o nome tokenAuth e o texto é diferente. Alguém sabe qual o novo algoritmo?

      Excluir
    4. Ele está sendo gerado utilizando a API do Google Auth, getToken

      Excluir
    5. E precisa de autenticação para gerar esse token? Poderia compartilhar por favor sua função?

      Excluir
    6. Não descobri como fazer para quebrar esse token, mas a versão antiga aquele com token Sha1, ainda funciona, mas você tem que enviar como se fosse dispositivo IPhone

      Excluir
    7. Não descobri como fazer para quebrar esse token, mas a versão antiga aquele com token Sha1, ainda funciona, mas você tem que enviar como se fosse dispositivo IPhone

      Excluir
    8. Este comentário foi removido pelo autor.

      Excluir
    9. Seu comentário foi removido, reformule por favor

      Excluir
    10. É que já consegui o cabeçalho (que já foi postado aqui mesmo). Obrigado por responder.

      Excluir
    11. E ae Senhores, bom dia!
      Pra CPF está rodando redondo aqui (se precisarem de ajuda, é só gritar..rss..)!
      E para consulta CNPJ alguém conseguiu?...hehehe..
      Abraços

      Excluir
    12. Houve alguma mudança no aplicativo do iPhone também? Desde 30/01/2016 estou recebendo a mensagem: "Prezado contribuinte! Não foi possível processar a operação. Verifique se há uma atualização do aplicativo disponível na loja.".

      Excluir
    13. É mudaram, agora está mais complicado não sei como ele estão gerando tokenAuth

      Excluir
    14. Alguém sabe o que mudaram? Esta me retornando a mesma mensagem de "Prezado contribuinte.."

      Excluir
  47. E eu achando que o Findler estava fazendo o parser do XML por isso nao apresentava as tags....

    ResponderExcluir
  48. Este comentário foi removido pelo autor.

    ResponderExcluir
  49. Alguém sabe a url do serviço para CNPJ?

    ResponderExcluir
  50. Olá preciso muito saber entender o funcionamento desse novo método, pois nao entendi, se possivel gostaria de uma ajudinha.
    Merefiro a esse código http://pastebin.com/s2Bz7yQ2

    ResponderExcluir
  51. Alguém sabe se ta funcionando ainda? estou recebendo essa mensagem:
    "Prezado contribuinte! Não foi possível processar a operação. Tente novamente mais tarde.

    ResponderExcluir
    Respostas
    1. Tambem estou recebendo essa mensagem, conseguiu resolver?

      Excluir
  52. Gente eu preciso de um leitor de captcha alguem pode me ajudar!

    ResponderExcluir
  53. Boa tarde,
    Preciso driblar o captcha da consulta NFe da RFB. Alguém já conseguiu?
    Podem me dar uma luz em relação a isso?

    ResponderExcluir
    Respostas
    1. Bom dia galega! Eu consigo burlar o captcha.
      Posso fazer um webservice e cobrar por consulta.

      Contato:edmar_puerta@hotmail.com

      Aguardo contato.

      Excluir
    2. Bom dia galega! Eu consigo burlar o captcha.
      Posso fazer um webservice e cobrar por consulta.

      Contato:edmar_puerta@hotmail.com

      Aguardo contato.

      Excluir
    3. Oi Edmar. Seria interessante compartilhar como faz isso porque utilizar seu WebService traria uma dependência do seu serviço.

      Poderia compartilhar como fez?

      Excluir
    4. Oi Edmar. Você poderia compartilhar como fez?

      Excluir
  54. Alguem esta conseguindo realizar o bypass?

    ResponderExcluir