Arquivo da categoria ‘programas’

Ferramentas para ataques DDoS,   funcionamento das ferramentas ddos

Ao contrário do que se pensa, os ataques DDoS não são novos. A primeira ferramenta conhecida com esse propósito(ataques ddos) surgiu em 1998. Desde então, foram diversas as ferramentas de DDoS desenvolvidas, cada vez mais sofisticadas e com interfáceis mais amigáveis. O que é no mínimo preocupante, pois nos dá uma idéia de quão rápido se movimenta o mundo hacker. A seguir, elas são listadas na ordem em que surgiram:

1. Fapi (1998)      2. Blitznet
3. Trin00 (jun/99)

4. TFN (ago/99)

5. Stacheldraht(set/99) 6. Shaft

7. TFN2K(dez/99)   8. Trank

9. Trin00 win version

Não é propósito deste artigo abordar todas as ferramentas de DDoS disponíveis,mas apenas conhecer o funcionamento básico das principais, que são: Trin00, TFN, Stacheldraht e TFN2K.

TRIN00

O Trin00 é uma ferramenta distribuída usada para lançar ataques DoScoordenados, especificamente, ataques do tipo UDP flood.Para maiores informações a respeito de ataques deste tipo, veja em: http://www.cert.org/advisories/CA-96.01 … enial.html

Uma rede Trinoo é composta por um número pequeno de masters e um grande número de agentes.

O controle remoto do master Trin00 é feito através de uma conexão TCP via porta 27665/tcp. Após conectar, o atacante deve fornecer uma senha(tipicamente, “betaalmostdone”).

A comunicação entre o master Trin00 e os agentes é feita via pacotes UDP na porta 27444/udp ou via pacotes TCP na porta 1524/tcp. A senha padrão para usar os comandos é “l44adsl” e só comandos que contêm a substring “l44″ serão processados.

A comunicação entre os agentes e o master Trin00 também é através de pacotes UDP, mas na porta 31335/udp. Quando um daemon é inicializado, ele anuncia a sua disponibilidade enviando uma mensagem (”*HELLO*”) ao master,o qual mantém uma lista dos IPs das máquinas agentes ativas, que ele controla.

Tipicamente, a aplicação cliente que roda no master tem sido encontrado sob o nome de master.c, enquanto que os daemons do Trin00 instalados em máquinas comprometidas têm sido encontrados com uma variedade de nomes, dentre eles: ns, http, rpc.trinoo, rpc.listen, trinix, etc. Tanto o programa cliente (que roda no master) quanto o daemon (que roda no agente) podem ser inicializados sem privilégios de usuário root.

TFN – TRIBE FLOOD NETWORK

O TFN é uma ferramenta distribuída usada para lançar ataques DoS coordenados a uma ou mais máquinas vítimas, a partir de várias máquinas comprometidas. Além de serem capazes de gerar ataques do tipo UDP flood como o Trin00, uma rede TFN pode gerar ataques do tipo SYN flood, ICMP flood e Smurf/Fraggle. Maiores informações a respeito deste tipo de ataques podem ser encontradas em:

http://www.cert.org/advisories/CA-96.21 … oding.html
http://www.cert.org/advisories/CA-98.01.smurf.html

Neste tipo de ataque é possível forjar o endereço origem dos pacotes lançados às vítimas, o que dificulta qualquer processo de identificação do atacante.

No caso específico de se fazer uso do ataque Smurf/Fraggle para atingir a(s) vítima(s), o flood de pacotes é enviado às chamadas “redes intermediárias” que consolidarão o ataque, não diretamente às vítimas.

O controle remoto de uma master TFN é realizado através de comandos de linha executados pelo programa cliente. A conexão entre o atacante e o cliente pode ser realizada usando qualquer um dos métodos de conexão conhecidos, tais como: rsh, telnet, etc. Não é necessária nenhuma senha para executar o cliente, no entanto, é indispensável a lista dos IPs das máquinas que têm os daemons instalados. Sabe-se que algumas versões da aplicação cliente usam criptografia (Blowfish) para ocultar o conteúdo desta lista.

A comunicação entre o cliente TFN e os daemons é feita via pacotes ICMP_ECHOREPLY.Não existe comunicação TCP ou UDP entre eles.

Tanto a aplicação cliente (comumente encontrada sob o nome de tribe) como os processos daemons instalados nas máquinas agentes (comumente encontrados sob o nome de td), devem ser executados com privilégios de usuário root.

STACHELDRAHT

Baseado no código do TFN, o Stacheldraht é outra das ferramenta distribuídas usadas para lançar ataques DoS coordenados a uma ou mais máquinas vítimas, a partir de várias máquinas comprometidas. Como seu predecessor TFN, ela também é capaz de gerar ataques DoS do tipo UDP flood, TCP flood, ICMP flood e Smurf/fraggle.

Funcionalmente, o Stacheldraht combina basicamente características das ferramentas Trin00 e TFN, mas adiciona alguns aspectos, tais como: criptografia da comunicação entre o atacante e o master;e atualização automática dos agentes.

A idéia de criptografia da comunicação entre o atacante e o master surgiu exatamente porque uma das deficiências encontradas na ferramenta TFN era que a conexão entre atacante e master era completamente desprotegida, obviamente sujeita a ataques TCP conhecidos (hijacking, por exemplo). O Stacheldraht lida com este problema incluindo um utilitário “telnet criptografado” na distribuição do código.

A atualização dos binários dos daemons instalados nos agentes pode ser realizada instruindo o daemon a apagar a sua própria imagem e substituí-la por uma nova cópia (solaris ou linux). Essa atualização é realizada via serviço rpc (514/tcp).

Uma rede Stacheldraht é composta por um pequeno número de masters onde rodam os programas clientes (comumente encontrados sob o nome de mserv, e um grande número de agentes, onde rodam os processos daemons (comumente encontrados sob o nome de leaf ou td). Todos eles devem ser executados com privilégios de root.

Como foi mencionado anteriormente, o controle remoto de um master Stacheldraht é feito através de um utilitário “telnet criptografado” que usa criptografia simétrica para proteger as informações que trafegam até o master. Este utilitário se conecta em uma porta TCP,comumente na porta 16660/tcp.

Diferencialmente do que ocorre com o Trinoo, que utiliza pacotes UDP na comunicação entre os masters e os agentes, e do TFN, que utiliza apenas pacotes ICMP, o Stacheldraht utiliza pacotes TCP (porta padrão 65000/tcp) e ICMP (ICMP_ECHOREPLY).

TFN2K – TRIBLE FLOOD NETWORK 2000

A ferramenta Tribe Flood Network 2000, mais conhecida como TFN2K, é mais uma ferramenta de ataque DoS distribuída. O TFN2K é considerado uma versão sofisticada do seu predecessor TFN. Ambas ferramentas foram escritas pelo mesmo autor, Mixter.

A seguir são mencionadas algumas características da ferramenta:

* Da mesma forma que ocorre no TFN, as vítimas podem ser atingidas por ataques do tipo UDP flood, TCP flood, ICMP flood ou Smurf/fraggle. O daemon pode ser instruído para alternar aleatoriamente entre estes quatro tipos de ataque.
* O controle remoto do master é realizado através de comandos via pacotes TCP, UDP, ICMP ou os três de modo aleatório. Estes pacotes são criptografados usando o algoritmo CAST.Deste modo, a filtragem de pacotes ou qualquer outro mecanismo passivo, torna-se impraticável e ineficiente.
* Diferentemente do TFN, esta ferramenta é completamente “silenciosa”, isto é, não existe confirmação (ACK) da recepção dos comandos, a comunicação de controle  é unidirecional. Ao invés disso, o cliente envia 20 vezes cada comando confiando em que, ao menos uma vez, o comando chegue com sucesso.
* O master pode utilizar um endereço IP forjado.

A título de ilustração se resume, através da seguinte tabela comparativa, como é realizada a comunicação entre os”personagens” encontrados em um típico ataque DDoS, para cada uma das ferramentas:
Comunicação Trin00 TFN Stacheldraht TFN2K
Atacante->Master 1524/27665/tcp icmp_echoreply 16660/tcp icmp/udp/tcp
Master->Agente 27444/udp icmp_echoreply 65000/tcp,
icmp_echoreply icmp/udp/tcp
Agente->Master 31335/udp icmp_echoreply 65000/tcp,
icmp_echoreply icmp/udp/tcp

De um modo geral, os binários das ferramentas DDoS têm sido comumente encontrados em máquinas com sistema operacional Solaris ou Linux. No entanto, a fonte dos programas pode ser facilmente portado para outras plataformas.

Ainda em relação às ferramentas, vale lembrar que a modificação do código fonte pode causar a mudança de certas propriedades da ferramenta, tais como: portas de operação, senhas de acesso e controle, nome dos comandos, etc. Isto é, a personalização da ferramenta é possível.

windows e seus componentes,

Aqui está uma lista de 26 programas escondidos ou pouco conhecidos do Windows. Alguns que não aparecem no menu iniciar mas que podem ser úteis. Para abrir, digite o nome do arquivo desejado no Menu Iniciar / Executar. Ex: clipbrd

1. Mapa de Caracteres = charmap.exe (para procurar caracteres indefinidos com suas fontes)

2. Limpeza de Disco = cleanmgr.exe

3. Área de Transferência = clipbrd.exe (verifica o que está no clipboard, ou seja, o que está copiado na memória temporária)

4. Dr Watson = drwtsn32.exe (ferramenta para solução de problemas)

5. DirectX diagnóstico = dxdiag.exe (teste seu DirectX, video & placas de som)

6. Private character editor = eudcedit.exe (crie ou modifique caracteres)

7. IExpress Wizard = iexpress.exe (compactador de arquivos, se vc usar o WinRAR ou WinZip não precisa dele)

8. Mcft Synchronization Manager = mobsync.exe (permite sincronização de arquivos na rede local)

9. Windows Media Player 5.1 = mplay32.exe (abre a versão 5.1 do tocador)

10. ODBC Data Source Administrator = odbcad32.exe (mexa com banco de dados)

11. Gerenciador de Objetos = packager.exe

12. System Monitor = perfmon.exe (tudo o que vc quiser saber sobre a performance do PC, para usuários avançados)

13. Gerenciador de Programas = progman.exe

14. Remote Access phone book = rasphone.exe

15. Registry Editor = regedt32.exe ou regedit.exe (para ver /modificar o Registro do Windows)

16. Services = services.msc (inicia, pára e configura os serviços do Windows)

17. Network shared folder wizard = shrpubw.exe (crie pastas compartilhadas na rede)

18. File signature verification tool = sigverif.exe (verifica a assinatura de um arquivo)

19. Volume Control = sndvol32.exe (controle de volume)

20. System Configuration Editor = sysedit.exe (modifique System.ini e win.ini)

21. Syskey = syskey.exe (protege o banco de dados de contas do Windows – use com cuidado).

22. Mcft Telnet Client = telnet.exe (CPublicar postagemliente Telnet em DOS)

23. Driver Verifier Manager = verifier.exe (monitore atividades de drivers).

24. Windows for Workgroups Chat = winchat.exe (um velho chat para rede local).

25. System configuration = msconfig.exe (desabilite/gerencie arquivos carregados ao iniciar Windows)

26. Diretivas de grupo – gpedit.msc (permite editar objetos de diretiva de grupo)

Fonte: Tiobio e outros blogs.

Programinha muito simples e eficiente para a busca de seriais. Chamado de “O filho hacker do google” ele cumpre bem o seu papel, é só digitar o nome do jogo, e esperar a busca terminar.

Muito facil de usar e muito eficiente. Gostei e estou anunciando.

Para baixar, digite no google: Craagle download

Que aparecerá um tanto de sites para voce baixar.

juan carlos cunha

~BYe~


Clique aqui e veja nosso novo site

INTRODUÇAO    Neste post eu ensinarei o basico sobre o mundo do cracking(como crackear programas)… Crack de alterar o código binario de um programa pra fazer com que ele faça algo que você queria… como não validar um login ou algo assim.   Antes  de  colocar a mão na massa sujiro que corra atraz de algum materia sobre assembly… Você precisa de saber o básico sobre assembly..  Vai  algo muito enxuto sobre alguns  comandos  ASM  que serão necessário neste tutorial: *  Call  ->  Call  quer  dizer  chamar…  ele pula pra  posicao do código que e passado como parâmetro. ex: Call 00401144   ;isso vai pular pra posicao 00401144 do código * JMP    -> jmp(jump -> Salto, pulo)  faz a mesma coisa que call…    A diferença é que com jmp não e possível retornar ao código… já com call se aparecer um  ret(return = retorne)  então ele segue para a linha logo apos o call Esta são duas instruções  de salto incondicionais… que quer dizer que se você usa-las, o programa saltara independente  de  qualquer  coisa //Gostou né!!!. Vamos agora ver somente duas instruções condicionais: * JE     -> JE(Jump if equal) e uma  instrução que ira pular se um valor X for igual a um valor  Y… * JNE    -> Se você for esperto deve  perceber  que essa e a negação da outra… JE(Jump if not e qual) vai  fazer  um  salto se um valor de X não for igual a um valor de Y… JO jump if overflow JB jump borrow  (borrow = menor   above = maior) A lógica do cracking  Estamos chegando  lá, vamos  antes  explicar  como que se crackeia um programa simples pra depois colocaremos a mão na massa. A lógica do cracking é a seguinte. Quando você digita algum serial ou algo assim: o  programa  verifica  se o serial e valido ou não??  Então como seria para burlar essa proteção, essa verificação em ASM? Você tem alguma idéia do que uma hora ou outra vai aparecer no código?? Si você disse que não, então vou te responder > uma ora ou  outra  vai aparecer uma instrução de salto(aquelas que apresentei no comeco)… que quando verdadeiro vá para a parte do código que diz que o serial e  verdadeiro e outra pra quando o serial for falso, Deu pra entender? vamos tentar! –  je 00127889 => se o serial for igual então pula pra 00127889 Deu pra entender + ou – ?? então o que essa instrução faria se você trocasse o je por um jne assim:    –  jne 00127889 => ???? “Se o serial não for igual então pula pra 00127889″… Mais você já sabe que a posição 00127889 da memoria é a parte onde o programa irá    executar as ações caso o serial for valido? se você trocar je por jne. Mais nós podemos melhorar isso! nem vale a pena escrever essa merda =\.. como ficaria se trocassemos nosso jne por um simples jmp ?? ISSOOOO!!! Não verificara  mais  nada=] Então ele pulara sem depender do serial esta certo ou errado 🙂 entaum ficaria assim: –  jmp 00127889 => Pula pra posical 00127889 da memória. Achou fácil? Agora tem um pequeno problema.. como vamos fazer isso ?? vamos disassemblar nosso programa, vê aonde ele pula e troca a instrucao 🙂 Essa é a primeira parte para o crackeio de um programa. Para isso  eu  uso  o W32Dasm. programa que muita gente usa pra esses fins, mais nele eu não sei  como alterar…  então  vamos  pegar  um  editor de hexadecimal para podermos alterar nosso programa…  Usarei  o Visual Basic para nos ajudar com os cracks, mais poderia ser qualquer programa que de pra abrir arquivos em binário. Mauns a massa Bem… Finalmente chego a hora de sairmos da teoria e passarmos para a pratica. Digo logo que não pretendo ensinar tudo sobre cracking.. Nos alteraremos dois programas… não será programas conhecidos pois eu não tenho nenhum exemplo bom para demostrar e também não tenho muito tempo de ficar procurando vulnerabilidades em programas assim, E também não quero ter problemas com os caras que fizeram eles. Os dois  programas  que nós crackearemos serão feitos por nós mesmos para fins de aprendizagem somente… o primeiro  dele e um programa que só verifica se já esta registrado ou não. se ele tiver, então aparece uma MSG dizendo que esta.. Se não aparece outra dizendo que não está validado… segue o código dele(em VB): Para quem não sabe nada de vb, Basta deixar um comentário pedindo uma explicaçao de como inserir o codigo. +++++++++++++++++++++++++++++ Sub Main()     Dim Registrado As Boolean     If Date = “19/12/2004” Then ‘ Vamos dizer q ele expiro a um dia =]         Registrado = True     Else         Registrado = False     End If     If Registrado = True Then         MsgBox “Programa registrado!”     Else         MsgBox “Programa não registrado!”     End If End Sub +++++++++++++++++++++++++++++    Compile este código e execute… Veja que aparecera a mensagem “Programa não registrado!” sempre que você executar ele… então podemos dizer que o serial já expiro ou algo assim. Agora  abra o executável no W32Dasm para poder descompilar ele..  mais não tem importância… o que você sabe sobre o programa?? isso mesmo..    1 -> Ele não esta registrado    2 -> Sempre aparece a mensagem “Programa não registrado!” Então  o que você tem que  fazer  e ir  em  Search -> Find Text e localizar por “Programa não registrado!”… Você achara esta frase na seguinte linha: —- * Possible StringData Ref from Code Obj ->”PPrograma não registrado!” —-   Então vá subindo até achar a linha q possui o seguinte: — * Referenced by a (U)nconditional or (C)onditional Jump at Address: — O que essa linha quer dizer?? Quer dizer que é o inicio de algum código e que algum lugar pulo para esta posição… então que posição seria esta… veja abaixo desta linha: — * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004016F3(C) — Repare que ele nos mostra um endereço de uma posição no programa… então quer dizer que  nesta  posição(004016F3) tem alguma instrução que pula para esta parte do código.. que é a  parte  onde  nos  diz que o programa não esta registrado… certo?? Então vamos  para  a posição 004016F3 do código.. pressione Shift+F12 e digite o endereço… Aonde nos fomos parar??? — :004016F3 7543                    jne 00401738 — Isso mesmo, É um “pule se não for igual”… então o que isso faz?? simples.. se o programa não estiver  registrado  então ele vai para a parte onde nos mostra a mensagem… então o que nos temos que  fazer??  colocar je ou jmp ?? não mesmo.. porque se não ele sempre irá dizer que não esta  registrado… o que fazer então?? Alterar a hora do windows pra poder  usar  até quando quiser?? Concerteza não!!! Vamos simplesmente tirar esta instrução do  nosso  programa… você pode estar pensando: só deletar ela então né?? eu respondo.. você pensa, mais que pena que esta errado… isso porque quando o programa e compilado.. ele gera os offsets(endereços de memória) baseado no nosso código… então se nos tirarmos esses dois bits do nosso programa… todos os offsets depois dessa instrução serão decrementados de dois bytes… então qualquer  instrução de salto que pule para depois desta instrução ira parar no lugar errado. então o que fazer? você só tem que trocar esses dois BYTES por dois NOP’s… esse é um comando que eu esqueci de falar… NOP = No  Operation… então ele não faz nada =] então quais bits seriam estes? Você esta  vendo  aquele numero em Hex entre o endereço e o comando? isso mesmo… aquele  7543.. ele é o  comando  “jne 00401738” em linguagem de maquina..   Esses  comando  estão  em hexadecimal.. se você pegar cada parte dele 75 43, verá que ele são dois  caracteres “\x75\x43” que é o valor dele no arquivo executável… então abra o nosso executável em um editor hex qualquer.. e procure pelo valor 75 43…  verifique se existe mais de um… se existir você terá que procurar mais especificações…  como por exemplo o valor do comando de antes e o valor do comando seguinte: — :004016F0 8945CC                  mov dword ptr [ebp-34], eax :004016F3 7543                    jne 00401738 :004016F5 8D559C                  lea edx, dword ptr [ebp-64] —    Nos caso você terá que procurar por:    89 45 CC 75 43 8D 55 9C Se mesmo  assim  existirem mais de um tente ser mais amplo… bem.. mais no nosso exemplo só existe uma instrução com o valor 75 43… então no editor hex troque o valor desses 75 43 por  90 90 respectivamente que são dois NOPs… para substituir nosso jump para nenhuma operação =] Agora salve seu  programa(com outro nome pra evitar problemas) e execute ele… VIVAAAAAAAAA!! ->  “Programa registrado!” Agora você  só precisa de fazer um crack pra ele… não vou colocar como eu faço em vb.. mais é só você abrir o programa em binário localizar pelo texto: strNormal = Chr(Val(“&H75”)) & Chr(Val(“&H43”)) e trocar pelo valor: strCracked = Chr(Val(“&H90”)) & Chr(Val(“&H90”)) Ai quando você salvar seu programa você tera alterado ele. Mais veja como seria um código basico em VB para isso: ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Dim bf as String strNormal = Chr(Val(“&H75”)) & Chr(Val(“&H43”)) strCracked = Chr(Val(“&H90”)) & Chr(Val(“&H90”)) bf = Space(FileLen(“ex1.exe”)) Open “ex1.exe” For Binary Access Read As #1     Get #1, , bf Close #1 bf = Replace(bf, strNormal, strCracked) Open “ex1[cracked].exe” For Binary Access Write As #1     Put #1, , bf Close #1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++    Viu como é simples d+ da conta?? Uma coisa que  você deve  ter em mente é o seguinte! O ASM varia de processador pra processador… então se aqui  no meu PC o endereço de pulo foi 00401738… no seu pode ser diferente. então  não adianta copiar e colar o código e pensar que vai dar certo porque não vai… eu fiz esse código pra essa compilação que eu acabei de fazer… Pois  isso  que as vezes quando o programa é simples você acha o crack pra alterar o exe.. mais quando o programa possui diversas compilações – como um jogo complexo por exemplo –  o máximo que você poderá achar é o executavel do jogo já crackeado. Vamos agora ao nosso segundo exemplo pratico.. vamos ao projeto:    – Crie um novo projeto no VB(adoro essa linguagem…)    – Adicione um botão(cmdVerifica) e uma caixa de texto(txtSenha.Text) em form e um novo formulário(Form2)    – Coloque o seguinte código: +++++++++++++++++++++++++++++++++++++++++++ Private Sub cmdVerifica_Click()     If txtSenha.Text = “chuck_newbie” Then         Form2.Show     Else         MsgBox “Senha invalida!”     End If End Sub +++++++++++++++++++++++++++++++++++++++++++ Para quem nao tem nocao alguma sobre este codigo, Ele fala o seguinte: Si a senha digitada for igual a chuck_newbie então, abra a pagina form2. se não dará uma mensagem de senha invalida. Obs: si você não tem noção alguma de programação, Pare agora de ler este tutorial e va aprender pelo menos o básico de linguagem de programação e algoritmo. Agora  compile  e  execute.. Você não sabe a senha… então digite qualquer coisa e veja o que aparece… “Senha invalida!” ….  agora  abra  o  executável no W32Dasm e procure por essa string…    Você achara ela na seguinte linha: — * Possible StringData Ref from Code Obj ->”SSenha invalida!” —    Agora vá subindo até achar a linha — * Referenced by a (U)nconditional or (C)onditional Jump at Address: — Pegue o  endereço  que esta logo abaixo desta linha… que se você não se lembra é o endereço que possui um salto para esta parte do código.. — * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00401F55(C) — que no meu caso é 00401F55… agora vá para esta posição do código: — :00401F55 0F8484000000            je 00401FDF — Esta aê  nosso  pulo… ele vai dizer que a senha é invalida se for igual.. você pode estar se perguntando  porque ele pula se for igual.. simples… porque o JE não quer dizer que a senha é igual a senha  digitada…  mais  sim  que a comparação feita seto  os  flags  de  um  jeito  que  quer  dizer isso. mais isso não vem ao  caso, pois  esse tutorial não é sobre ASM… o que você tem que pensar é que se alguma coisa for igual a  outra  então ele vai dar que a senha é invalida… então você só tem que fazer o mesmo esquema que  anterior…  retirando esta instrução do seu programa… mais como nos  sabemos?  Não  podemos simplesmente  tirar… temos que substituir esta instrução pelo mesmo tamanho dela, só que executando nop’s =] Se você quiser editar ele em hex fique a vontade… mais já que eu não tenho nenhum aqui prefiro fazer o crack mesmo. Não se esqueça de verificar se existe mais alguma instrução igual a essa antes de substituir… Mais por nossa sorte não tem… então vamos ao crack… Ele só tem que substituir 0F8484000000 por 909090909090 isso mesmo… um monte de nops    O código do nosso crack deveria ser algo como: ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Dim bf as String strNormal = Chr(Val(“&H0F”)) & Chr(Val(“&H84”)) & Chr(Val(“&H84”)) & _             Chr(Val(“&H00”)) & Chr(Val(“&H00”)) & Chr(Val(“&H00”)) strCracked = Chr(Val(“&H90”)) & Chr(Val(“&H90”)) & Chr(Val(“&H90”)) & _              Chr(Val(“&H90”)) & Chr(Val(“&H90”)) & Chr(Val(“&H90”)) bf = Space(FileLen(“ex1.exe”)) Open “ex1.exe” For Binary Access Read As #1     Get #1, , bf Close #1 bf = Replace(bf, strNormal, strCracked) Open “ex1[cracked].exe” For Binary Access Write As #1     Put #1, , bf Close #1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Se você for esperto desenvolverá funções para facilitar o código… olha como fica meu código com as funções que eu desenvolvo: ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Private Sub cmdPatch_Click()     Dim sNormal As String     Dim sPatch As String     Dim R As Integer     If txtF.Text = “” Then Exit Sub ‘ txtF contem caminho do arquivo     sNormal = Bin(“0F8484000000”)     sPatch = Bin(“909090909090”)     R = Patch(txtF.Text, sNormal, sPatch)     If R = CRACKED Then         lblS.Caption = “CRACKED!”     ElseIf R = CORRUPTED Then         lblS.Caption = “FILE CORRUPTED OR ALREADY CRACKED!”     Else         lblS.Caption = “ERROR!”     End If End Sub ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Vamos agora fazer uma coisa um pouco mais complicada… veja o código abaixo: ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Sub Main()     Dim Registrado As Boolean     If Date = “19/12/2004” Then ‘ Vamos dizer q ele expiro a um dia =]         Registrado = True     Else         Registrado = False     End If     If Registrado = False Then         MsgBox “Programa não registrado!”     Else         MsgBox “Programa registrado!”     End If End Sub ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Ele faz  a  mesma coisa que o anterior com a única diferença que ele verifica se não esta registrado no “if”! então grave em um novo projeto, compile e execute.. você verá que realmente ele faz o mesmo que o anteriores.. agora abra ele no w32dasm e tente crackealo como  a gente tem feito até agora… Ta lendo ainda né?? mais digo logo que você não conseguirá… pra evitar esse tipo de problema você só tem que ficar atento ao código do programa… vamos passo a passo… abra no W32Dasm e procure por “Programa não registrado!” OBS: Algumas vezes você não conseguira achar o resultado da string… se isso ocorrer tente novamente só que procurando somente por parte dela.. nesse caso você também pode tentar localizar “não” ou “não registrado”.. isso fica ao seu critério… achando a frase vim o segredo… nos sempre subimos no código procurando o inicio dele até achar uma parte de uma instrução que salta pra ele… mais nesse caso a instrução salta pra parte falsa do código… então o que você tem que fazer… você tem que perceber.. que o salto esta dentro deste próprio código. então vá subindo até achar alguma das instruções de salto.. achei uma a três linha acima: — :004016F2 7543                    jne 00401737 — O que essa belezinha ai faz?? simplesmente pula se uma coisa não for igual a outra. Você pode estar pensando “e daí??”… bem… o que aconteceria se essa coisa FOR igual a OUTRA coisa?? ele iria pra parte do código onde aparece a mensagem de não registrado… mais uai… pra onde ele pula então… pra saber isso basta pegar o endereço no qual ele pular e ver o que ele executa… GoTo / Goto Code Location => Digite: 00401737 e clique em OK   VIVA!! Você viu aonde nós caímos: — * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004016F2(C) | :00401737 8D559C                  lea edx, dword ptr [ebp-64] :0040173A 8D4DDC                  lea ecx, dword ptr [ebp-24] * Possible StringData Ref from Code Obj ->”PPrograma registrado!”                                   | :0040173D C745A464134000          mov [ebp-5C], 00401364 :00401744 C7459C08000000          mov [ebp-64], 00000008 — Caímos na posição caso o programa estiver registrado. então como que a gente vai crackiar isso?? bem… não podemos tirar o jne que pula pra ir se não ele nunca vai pular e vai sempre dar “Programa não registrado!”… então nos temos que fazer com que ele pule pra essa parte do código independente de ta registrado ou não… e como fazer isso?? simples.. nos fazemos o salto sem condição! e temos que fazer isso trocando o “jne” por “jmp” que é um salto incondicional… mais ai complico um pouco né?? ixi… É mais fácil  do que você pensa… procura no código todas as instruções jmp que pular pra algum endereço e veja o que ela tem em comum.. Segue alguns exemplos: — :00401096 FF253C104000            Jmp dword ptr [0040103C] ….. :00401650 E9E9E9E9CC              jmp CD2A003E ….. :00401788 EB1C                    jmp 004017A6 — Você consegue perceber alguma semelhança?? É porque realmente não tem nenhuma semelhança pelo modo de salto… no primeiro exemplo ele salta convertendo o endereço… no segundo ele saltou pra algum lugar da memória que esta fora do código do programa(uma API em uma DLL por exemplo).. e no terceiro exemplo ele salta pra uma parte do nosso código… VIVA!!.. É a terceira que nos queremos… pois queremos pular para uma parte do nosso código.. que é a parte onde o programa esta registrado. vou tentar explicar melhor… — :00401788 EB1C                    jmp 004017A6 — *   EB = JMP          -> Pule para *   1C = 28(decimal)  -> O código que ta a 28 posicoes daqui    Entaum voltando ao nosso JNE: — :004016F2 7543                    jne 00401737 — *  75 = JNE          -> Se naum for igual pule para *  43 = 67(decimal)  -> 67 posicoes a fente    Pra clarear nos temos que fazer o seguinte: — :004016F2 EB43                    jne 00401737 — *  EB = JMP          -> Pule se condicao nenhuma para *  43 = 67(decimal)  -> 67 posicoes a fente Tah ai como nos crackiamos nosso código… temos que trocar o 7543 por EB43…isso fará com que o JNE vire JMP e não contara mais nenhuma condição. OK! vamos ao nosso crack… mais antes temos que verificar se existe mais alguma instrução igual a esta… e se não  tiver codamos nosso crack alterando 75 43 por EB 43: O código do nosso crack pode ser algo como: ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Dim bf as String strNormal = Chr(Val(“&H75”)) & Chr(Val(“&H43”)) strCracked = Chr(Val(“&HEB”)) & Chr(Val(“&H43”)) bf = Space(FileLen(“ex1.exe”)) Open “ex1.exe” For Binary Access Read As #1     Get #1, , bf Close #1 bf = Replace(bf, strNormal, strCracked) Open “ex1[cracked].exe” For Binary Access Write As #1     Put #1, , bf Close #1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Bem… espero que tenha dado pra dar uma clareada sobre como crackiar programas. Quero deixar bem claro que eu crackei e fiz cracks usando o VB… mais com isso é possível crackiar programas feitos em qualquer linguagem e fazer cracks com em qualquer linguagens também… Si for fazer alguns testes, então aconselho a fazer naqueles  jogoguinhos mais ruins do mundo inteiro. Que até os programadores que fizeram eles, não vão si importar. To certo! hehe ~Bye~

Programas Descrições
Aggressor Um dos melhores Nukes
Assault Um nuke simples que da a opçao da porta nukada
CyberKit Varias opções ping, finger ….
Blood Lust Com esse nuke vc poderar escolher a porta menssagem etc.
Fake IP Pega Informações do Ip da Vitima
Divine Um poderoso nuke, detona o Lammer
DosNuke Nuke em sistema DOS
Freakzoid Bom nuke. Com a opção de ver se o ip foi desconectado realmente
Flooder Mande flooder nos Bate – Papos
Nuke IT Nunca usei mais dizem que é bom
Nuke 2.3 Bom nuke com várias opções
LorNuke Um dos melhores nukes na minha opnião