Tuesday 10 October 2017

De4dot Binary Options


Instalações de destilação de água Requeremos água destilada para praticamente todas as aplicações no laboratório. No entanto, a qualidade, parâmetros físicos e químicos da água mudam drasticamente conforme a natureza da aplicação da água destilada. Tendo em vista a importância e a necessidade de tal variedade de exigência de água destilada em várias aplicações de laboratório em todo o mundo. Weiber introduz uma variedade de plantas de destilação para se adequar a tais aplicações variadas. Nós fabricamos plantas de destilação de água mantendo em vista a exigência de uso de diferentes laboratórios. A nossa gama de instalações de destilação de água incluem, instalações de destilação de montagem na parede para requisitos laboratoriais regulares, padrão de tabela Barnstead tipo destilação plantas para uso pesado. Vidro single dupla e tripla destilação para alta qualidade água destilada requisitos para laboratório e aplicações médicas. Além disso, temos uma planta de destilação de quartzo high-end para exigência analítica avançada para pesquisa ou trabalho de teste. Nós fabricamos plantas de destilação na Índia de acordo com as diretrizes internacionais aderindo a um protocolo de controle de qualidade rigoroso. Nós somos fornecedores regulares de nossas plantas de destilação para várias organizações governamentais e não governamentais, além de ser um exportador regular de plantas de destilação exportando para alguns países em todo o mundo. Unidade de Destilação de Água Unidade de Destilação de Água Unidade de Destilação de Água Unidade de Destilação de Água Unidade de Destilação de Água Unidade de Destilação de Água Unidade de Destilação Kjeldahl Unidade de Destilação de Micro Kjeldahl Unidade de Destilação de Soxhlet Unitde4dot é um deobfuscator e descompactador de código aberto (GPLv3) C. Ele tentará o seu melhor para restaurar uma montagem embalada e ofuscada para quase a montagem original. A maior parte da ofuscação pode ser completamente restaurada (por exemplo, criptografia de string), mas renomear símbolo é impossível restaurar uma vez que os nomes originais arent (normalmente) parte do assembly ofuscado. Ele usa o dnlib para ler e escrever assemblies, portanto certifique-se de obtê-lo ou ele não vai compilar. É GRÁTIS, mas não há suporte Não há suporte. Não me envie um e-mail se você não pode usá-lo ou se ele não deobfuscate um arquivo ofuscado com um obfuscator atualizado. Em vez disso, tente atualizar o de4dot sozinho. É muito mais fácil do que você pensa. Se você cant, pesquisa na Internet e você deve encontrar um par de fóruns onde você pode fazer a sua pergunta. Heres uma lista pseudo aleatória das coisas que ele vai fazer, dependendo do que obfuscator foi usado para ofuscar uma montagem: Inline métodos. Alguns obfuscators mover partes pequenas de um método para outro método estático e chama-lo. Descriptografar strings estaticamente ou dinamicamente Descriptografar outras constantes. Alguns ofuscadores também podem criptografar outras constantes, como todos os inteiros, todas as duplas, etc. Descriptografar métodos estaticamente ou dinamicamente Remover métodos proxy. Muitos obfuscators substituir mais / todas as instruções de chamada com uma chamada para um delegado. Esse delegado, por sua vez, chama o método real. Renomear símbolos. Mesmo que a maioria dos símbolos não podem ser restaurados, ele será renomeado para seqüências legíveis. Às vezes, alguns dos nomes originais podem ser restaurados, no entanto. Devirtualize o código virtualizado Descriptografar recursos. Muitos ofuscadores têm uma opção para criptografar recursos do. NET. Descriptografar arquivos incorporados. Muitos obfuscators têm uma opção para incorporar e possivelmente criptografar / comprimir outros assemblies. Remover o código de detecção de adulteração Remover o código anti-debug Controle o fluxo deobfuscation. Muitos obfuscators modificam o código de IL assim que olha como o código do spaghetti que faz muito difícil de compreender o código. Restaurar campos de classe. Alguns obfuscators podem mover campos de uma classe para algum outro obfuscator criado classe. Converta um PE exe para um. NET exe. Alguns obfuscators quebra um assembly. NET dentro de um PE Win32 para um. Decompiler. NET não pode ler o arquivo. Remove a maioria / todas as classes de lixo adicionadas pelo obfuscator. Corrige alguns erros peverify. Muitos dos obfuscators são buggy e criar o código unverifiable pelo erro. Restaurar os tipos de parâmetros e campos do método Agile. NET (também conhecido como CliSecure) Babel. NET CodeFort CodeVeil CodeWall CryptoObfuscator DeepSea Obfuscator Dotfuscator. NET Reactor Eazfuscator. NET Goliath. NET ILProtector MaxtoCode MPRESS Rummage Skater. NET SmartAssembly Spices. Net Xenocode Alguns dos acima Obfuscators são usados ​​raramente (por exemplo, Goliath. NET), assim que tiveram muito menos testar. Ajude-me a relatar bugs ou problemas que você encontrar. Às vezes, a assembléia ofuscada e todas as suas dependências são carregadas na memória para execução. Use um ambiente de sandbox seguro se você suspeitar que o assembly ou assemblies sejam malwares. Mesmo que a versão atual do de4dot não carregue um determinado assembly na memória para execução, uma versão futura pode. Como usar de4dot Arraste e solte o (s) arquivo (s) em de4dot. exe e aguarde alguns segundos. Deobfuscate mais de um arquivo de cada vez Quando mais de uma assembléia foi ofuscada, é muito provável que você deve deobfuscate todos eles ao mesmo tempo, a menos que você desativar símbolo renomeando. A razão é que se o assembly A tem uma referência à classe C na montagem B, e você renomear símbolos apenas na montagem B, a classe C poderia ser renomeada para, por exemplo,. Class0 mas a referência no assembly A ainda faz referência a uma classe chamada C na montagem B. Se você deobfuscate ambos os assemblies ao mesmo tempo, todas as referências também serão atualizadas. Encontre todos os arquivos ofuscados e deobfuscate-os A seguinte linha de comando irá deobfuscate todos os assemblies que foram ofuscados por um obfuscator suportado e salvar os assemblies para c: output - r significa pesquisa recursiva. - ru significa que ele deve ignorar arquivos desconhecidos. - ro significa que deve colocar os arquivos de saída no seguinte diretório. Normalmente, youd primeira cópia c: entrada para c: saída. E depois executar o comando. Dessa forma, todos os arquivos estarão em c: output. Mesmo não-assemblies e non-processados ​​assemblies. Quando de4dot é terminado, youd apenas clique duplo a montagem principal em c: saída e deve começar esperançosamente. Use a opção - d para detectar o obfuscator sem deobfuscating qualquer assembly. Encontre todos os assemblies. NET e detecte o obfuscator. Se for um obfuscator sem suporte ou se não for ofuscado, ele irá imprimir o obfuscator desconhecido. Mesmo que acima, exceto que ele só irá mostrar quais arquivos foram ofuscados por um obfuscator suportado. Preservando tokens de metadados Às vezes, em casos raros, você deseja preservar os tokens de metadados. Use --preserve-tokens ou --preserve-table. Considere também usar --keep-types, uma vez que não vai remover todos os tipos e métodos adicionados pelo obfuscator. Outra opção útil é --dont-create-params. Se usado, o renamer não criará linhas Param para parâmetros de método que não têm uma linha Param. Dessa forma, a tabela ParamPtr não será adicionada aos seus assemblies. Peverify tem um bug e não suporta (você verá muitos erros). As pilhas Strings, US e Blob também podem ser preservadas usando --preserve-strings. --preserve-nos. E --preserve-blob, respectivamente. Destes três, --preserve-us é o mais útil uma vez que a instrução ldstr eo módulo. ResolveString () fazem referência diretamente ao heap dos EUA. --preserve-sig-data deve ser usado se o obfuscator adiciona dados extras no final de assinaturas que ele usa para seu próprio propósito, por exemplo. Como chaves de descriptografia. Confusor é um obscurecedor que faz isso. --preserve-tokens preserva todos os tokens importantes mas igualmente permitirá --preserve-us. --preserve-blob e --preserve-sig-data. Se for detectado como um desconhecido (não suportado) obfuscator (ou se forçá-lo com-p un), todos os tokens são preservados, incluindo o heap EUA e quaisquer dados extra no final das assinaturas. Além disso, nenhum tipo de ofuscador, campos ou métodos são removidos. Preserve todos os tokens importantes, EU, Blob, dados extra do sig. Preserve todos os tokens importantes, US, Blob, dados de sig extra e não remova tipos / campos adicionados pelo obfuscator Preserve todos os tokens importantes, US, Blob, dados de sig extra e não crie linhas Param adicionais para impedir que a tabela ParamPtr seja criada. Preserve todos os tokens importantes, exceto os tokens Param. Dinamicamente decifrando cadeias Embora de4dot suporta um monte de ofuscadores, theres ainda alguns que não suporta. Para decifrar seqüências de caracteres, primeiro você precisará descobrir qual método ou métodos descriptografar cadeias de caracteres. Para obter o token de método desses decrypters de seqüência de caracteres, você pode usar ILDASM com a opção show tokens de metadados habilitada. Um token de método é um número de 32 bits e começa com 06, por exemplo. 06012345. Este comando carregará assembly file1.dll na memória chamando Assembly. Load (). Quando detecta chamadas para os dois decodificadores de cadeia (06012345 e 060ABCDE), irá chamá-los criando um método dinâmico e guardar o resultado (a cadeia decifrada). A chamada para o decrypter de seqüência de caracteres será removida ea seqüência descriptografada será em seu lugar. Uma vez que o assembly é carregado e executado, certifique-se de executá-lo em uma caixa de areia se você suspeita que o arquivo para ser malware. Forçar a detecção de um certo obfuscador de4dot não é perfeito. Se ele não conseguir detectar um ofuscador, você pode usar a opção - p para forçá-la a assumir que foi ofuscada por ela. Forçar o obfuscador não suportado Para outros tipos de obfuscator, consulte a tela de ajuda. Desabilitando o renomeamento de símbolos Renomear símbolos não é tão fácil quanto renomear de A para B quando a reflexão está envolvida. De4dot atualmente não suporta renomear XAML assim se você suspeitar que ele usa WPF (ou se é um aplicativo Silverlight) você deve desativar o renomeio se a montagem falhar executar. --keep-names também pode ser usado para dizer de4dot não renomear certos símbolos, por exemplo. Não renomear campos. Renomeie tudo o que deve ser renomeado, exceto propriedades, eventos e métodos. Usando um regex diferente de renomeação Os regexes padrão devem ser suficientes, exceto possivelmente o que é usado quando um obfuscator sem suporte é detectado. Para ver todos os regexes padrão, inicie de4dot sem quaisquer argumentos e listará todas as opções e todos os valores padrão. Por exemplo. Atualmente o seguinte é o regex padrão usado quando Dotfuscator é detectado Como você pode ver, não é apenas um regex, é mais do que um. Cada um é separado por amp e cada regex pode ser negado usando. Na frente dele. Para mostrá-lo mais claramente, estas regexes são usadas: Para alterar o regex (es), você deve saber o nome de tipo curto do obfuscator (consulte a tela de ajuda). Por exemplo. Seu sa se seu SmartAssembly, e un se seu um obfuscator unupported / desconhecido. A opção a ser utilizada é - TYPE-name (por exemplo, --sa-name para SmartAssembly e --un-name para desconhecidos / não suportados ofuscadores): Iniciar de4dot sem quaisquer argumentos e ele irá mostrar todas as opções. Patching. NET Binary Code Com CFF Explorer Practice para o sucesso de certificação com a biblioteca Skillset de mais de 100.000 perguntas de teste de prática. Nós analisamos suas respostas e podemos determinar quando você está pronto para sentar para o teste. O objetivo deste artigo é mostrar como ignorar várias verificações de segurança, modificando o código binário diretamente, em vez de código-fonte, através do uso do CFF Explorer. Já vimos as diversas maneiras de contornar o código IL mais cedo. Lá nós realizamos tais tarefas cruciais jogando com instrução do código do byte do IL. Este artigo basicamente ensina como identificar as instruções de código binário correspondente usando o desassemblador IL, em seguida, você aprenderá a modificar esse código binário (código hexadecimal) usando um editor como CFF Explorer. Presume-se que o usuário tem uma compreensão completa e conhecimento de manipulação de codificação binária e que você instalou uma nova cópia do software CFF Explorer, a fim de editar as instruções de código binário. Além disso, o usuário deve ter uma profunda compreensão da instrução de código MSIL também. O aplicativo Cracking. NET Aqui, estamos desenvolvendo um aplicativo de demonstração C. net para ilustrar como ignorar as restrições de segurança de um programa que executa um cálculo ou conversão de centígrado para Fahrenheit. O código para a implementação da expiração do teste é: Aqui, depois de examinar cuidadosamente o código, podemos facilmente descobrir que o método TrialExpiredCheck () é responsável pela expiração do produto. Nós don8217t necessidade de se preocupar com o código de conversão de cálculo e outros. Depois de compilar com êxito esse código-fonte, o CLR produz seu arquivo executável. Durante a duração do teste, o protótipo da interface do usuário deste produto ficaria assim: Mas o fornecedor deste produto libera sua versão beta e fornece apenas uma versão de avaliação gratuita no mercado que funciona por um período específico. Uma vez concluída esta duração, ela expirará automaticamente e uma mensagem de alerta piscará na tela. Depois que o botão OK é clicado, ele automaticamente descarrega o aplicativo. A mensagem de alerta se parece com a seguinte: Agora, existem duas opções que permitem que você continue usando o produto. Ou comprar a chave do produto (versão completa), que, é claro, requer algum dinheiro, ou reverter a engenharia da implementação lógica, a fim de ignorar as verificações de segurança. Mas nós don8217t tem o código-fonte, então como podemos fazer isso? Ainda é possível, alterando o código binário do executável, usando CFF Explorer. Embora não tenhamos o código-fonte deste produto, somos fornecidos com a versão executável. Tudo o que temos a fazer é modificar o código binário deste produto, a fim de ignorar as restrições de segurança usando o. net enviado ILDASM. exe já vimos alguns exemplos de manipulação usando ILDASM nos artigos anteriores desta série de engenharia reversa Mas, do ponto de vista deste artigo, o papel de ILDASM é ligeiramente diferente. Desta vez, vamos despejar o arquivo executável em busca de RVA (relativo endereço virtual) instrução, que é obtida quando compilar com a opção de número de linha correspondente. Primeiro, abra a montagem de destino em ILASM: O IL Disassembler irá revelar todas as instruções para cada método em formato linha-a-linha. A coluna RVA tipicamente permite que o tempo de execução para calcular o endereço de memória inicial do MSIL, definindo o método que contém a verificação de julgamento, os bytes para cada instrução e sua posição em relação ao RVA. O arquivo desmontado ou descompilado, no entanto, produz uma grande quantidade de código de IL bruto, mas a nossa principal preocupação é encontrar código TrialExpireCheck () método correspondente, da seguinte forma: Embora existam um par de edição hexadecimal ou edição binária ferramentas disponíveis, como Ollydbg E IDApro, eles don8217t apoio. NET código binário edição que só pode executar C / C / VC PE arquivo modificação. O CFF Explorer, no entanto, foi projetado para edição de PE com suporte total para o arquivo binário do. NET, mas sem perder de vista a estrutura interna portátil executável. Esta maravilhosa ferramenta encapsula pacotes de ferramentas que podem ajudar na engenharia reversa. O Explorador CFF inclui os seguintes recursos: Editor Hex Desmontador rápido (x86, x64, MSIL) Suporte completo para PE32 / 64 PE utilitários, Visualizador de processo PE rebuilder Visualizador de drivers Visualizador de Windows PE e dumper de memória Visualização e modificação de estruturas internas. NET Editor de recursos Suporte no editor de recursos para recursos. NET Verificações de integridade do PE Caminhante de dependência Método de varredura profunda Geração de relatórios Atualizador de assinaturas Agora é hora de agir. Abrir CFF Explorer (este é um utilitário gratuito que pode ser baixado do ntcore). Abra o arquivo executável. NET de destino (Fahrenheit. exe) e ele irá descompilar e, em seguida, carregar todo o código binário associado. Como você pode ver na imagem a seguir, o CFF Explorer revela quase todos os detalhes sobre este arquivo executável, como seu nome, tipo de arquivo, ambiente de desenvolvimento, tamanho do arquivo, tamanho do PE e formato de hash. Podemos executar bundles de operações usando CFF Explorer, incluindo modificação de recursos, edição hexadecimal, desmontagem, conversão de endereços e, finalmente, reconstruir ou reescrever o arquivo. Nosso principal interesse é 8220Address Converter, 8221 que está localizado no painel esquerdo do meio. Basta abri-lo e você vai encontrar o arquivo executável na forma de código binário. Uma das tarefas sofisticadas e complexas é manipular ou modificar diretamente a instrução binária porque não temos qualquer informação sobre qual instrução é responsável por qual valor hexadecimal binário. É por isso que desmontamos esse arquivo executável em código IL mais cedo para encontrar o valor RVA e seqüências de código binário. O arquivo de código IL tem cada instrução com seu número de linha exata, que aponta o número real de linha do código fonte ea seqüência de bytes. Basicamente, RVA representa o endereço de segmento para o método (TrialExpiredCheck), que inclui toda a lógica para as restrições de segurança. Esta instrução indica que este corpo do método começa a partir do endereço 0x2134 nos bytes hexadecimais não processados. // Método começa em RVA 0x2134 Temos de executar duas tarefas, a fim de ignorar as restrições de validade de versão de teste Parar ou desviar a chamada do método Application. Exit () em conta de carting sobre a execução. Remova a caixa de mensagem de alerta da versão 8220Trial expired8221. Assim, usando esse valor 0x2134, podemos saltar diretamente para o código de lógica de restrição de segurança, como mostrado abaixo Desviar ou Remover o método Call to Application. Exit () Primeiro, temos de identificar os bytes associados no código hexadecimal que são responsáveis ​​por Executando o método Application. Exit (). Depois de examinar cuidadosamente o código IL definido anteriormente, podemos descobrir que o código de operação IL001f é código de chave como IL001f: / 28 (0A) 000021 / call void System. Windows. FormsSystem. Windows. Forms. Application :: Exit () IL0024: / 00 / nop IL0025: / 00 / nop IL0026: / 2A / ret Os valores de byte associados são mostrados em vermelho, temos de alinhá-los na seqüência apropriada. Isto é normalmente feito da direita para a esquerda como se segue 28 21 00 00 0A 00 00 2A Pode também detectar uma sequência de bytes tal no editor de código hexadecimal CFF, como mostrado abaixo Então, se mudarmos os bytes entre 26 e 2A para nop (00 ), Então podemos parar ou remover a chamada de Applicaton. Exit método: Agora temos removido com êxito a chamada para o método Exit (). Remover a caixa de mensagem de chamada para alerta Se examinarmos o código IL completamente, podemos ver facilmente que existe uma variável booleana, isTrialExpired, que está configurada para ser True por padrão e, no método TrialExpiredcheck (), seu valor é verificado em um condição. Como o valor da variável booleana é true, se a execução de construção de condição sempre for verdadeira e uma caixa de mensagem de alerta será exibida. IL0002: / 7B (04) 000004 / ldfld bool Fahrenheit. Conversion :: isTrialExpired IL0007: / 16 / ldc. i4.0 IL0008: / FE01 / ceq IL000a: / 0A / stloc.0 IL000b: / 06 / ldloc.0 IL000c : / 2D 18 / brtrue. s IL0026 A seqüência de bytes reais seria a seguinte Então, este é o hack: Se removemos esta condição if, substituindo o valor de instrução IL00c 2D por 2C. Então a construção if nunca é executada e nenhuma caixa de mensagem de alerta aparece. Finalmente, salve a modificação que você fez para o arquivo de código binário porque também fornece a funcionalidade de reconstruir o arquivo executável. Agora teste o executável: A caixa de mensagem não aparece eo arquivo executável carrega com êxito. Bingo Nós removemos com sucesso toda a restrição de segurança. Este artigo mostrou como editar ou corrigir as instruções de código binário sem ter o código fonte real. Empregamos uma ferramenta de terceiros, CFF Explorer, que suporta a modificação do arquivo binário. NET, ao contrário dos outros editores hexadecimais. Aprendemos também uma das táticas de dumping avançadas do código IL para obter o número de linha real e as correspondentes sequências de bytes correspondentes. Depois de entender como isso funciona, podemos facilmente reverter a engenharia do código binário. NET como por nossa exigência. Disclaimer: Eu, Ajay Kumar, não tenho nenhuma intenção de ensinar qualquer tática ofensiva e eu não apoio qualquer Black Hat atividades. A razão para este artigo é fornecer chapéu branco ou conhecimento defensivo para estudo ou teste.

No comments:

Post a Comment