Onde conseguir o programa:
Aqui mesmo no BRCrackerz, seção Ferramentas Úteis
Pré-Requisitos:
- Conhecimentos basicos de Assembly
Requisitos do Sistema:
- Windows 95 ou Windows 98
Blá-Blá-Blá Inicial
Este tutorial serve com fins apenas educativos. O autor não assume nenhuma responsabilidade.
COMEÇANDO...
Bom, agora que o SI já está instalado e configurado, vamos a parte mais importante para crackear programas no SI. Os BREAKPOINTS:
Os Breakpoints, são necessários, para que você possa ir direto ao ponto que interessa. A rotina de proteção do programa. Se você simplesmente pressionar <CTRL+D> provavelmente vai cair no meio de um módulo do Win9X, sei-lá GDI, USER, etc... E isto não interessa!
Para ativar um BREAKPOINT, você pode usar: BPX, BPM, BPIO, BPINT (Os mais usados)
Vai aqui uma relação dos breakpoints mais usados e onde usá-los (Compilado por Aesculapius). Não fui eu que a estruturei, portanto preferi não mudá-la, apenas traduzi.
Vale lembrar que este são chamadas para programas 16 bits, se o seu programa for em 32bits (a maioria deles), basta colocar um "a" na frente das hamadas. Por exemplo:
BPX messagebox (16 bits) ou BPX messageboxa (32 bits)
Para verificar isto, basta checar se os registradores do programa são AX ou EAX, se for EAX o programa é 32 bits, caso contrario é 16 bits. Na dúvida, use 32 bits.
Propósitos Gerais
bpx messagebox
bpx getdlgitemtext
bpx getwindowtext
bpx hmemcpy
bpx showwindow
bpx updatewindow
bmsg xxxx wm_gettext
bmsg xxxx wm_command
bmsg xxxx wm_move
Relativos a tempo de execução
bpint 21 if ah==2A (DOS)
bpx getlocaltime
bpx getfiletime
bpx getsystemtime
Flag do Registrador (No exemplo EAX)
bpx cs:eip if EAX==0 (SICE 3.x)
Flag de memoria (Flag em 0030:000045AA)
bpmb cs:eip rw if 0x30:0x45AA==0 (SICE 3.x)
Técnica do "Hear The Echo" (Escute o eco)
bpx 0x30:0x45AA do "d 0x30:0x44BB" (SICE 3.x)
bpx CS:0x66CC do "? EAX" (SICE 3.x)
Esquemas de CD-ROM & Discos
bpint 13 if ah==2 (DOS)
bpint 13 if ah==3 (DOS)
bpint 13 if ah==4 (DOS)
bpx GetFileAttributesA
bpx GetFileSize
bpx GetDriveType
bpx GetLastError
bpx ReadFile
bpio -h (Your CD-ROM Port Address) R
Hardlock's
bpio -h 278 R
bpio -h 378 R
Arquivos com registros
bpint 21 if ah==3dh (DOS)
bpint 31 if ah==3fh (DOS)
bpint 21 if ah==3dh (DOS)
bpx ReadFileA
bpx CreateFileA
Entrada via teclado
bpint 16 if ah==0 (DOS)
bpint 21 if ah==0xA (DOS)
Nos próximos tutoriais que seguirão, usando o SI, você vai ver alguns deles sendo usados... Portanto, se você ainda está meio por fora, não se preocupe! Nem tudo está perdido < Ainda ;-) >
Exemplo BEM SIMPLES:
- Tente rodar um programa e entrar
onde ele pede o Nome/#Registro.
- Entre qualquer nome e um número
de registro qualquer (Por exemplo: Nome: HaWK / # Série: 1234567890)
- Não pressione OK ou dê
<ENTER> ainda.
- Pressione CTRL+D para entrar no
SoftIce.
- Digite: BPX GETDLGITEMTEXTA (ou
BPX GETDLGITEMTEXT)
- Digite: BPX GETWINDOWTEXTA (ou BPX
GETWINDOWTEXT)
- Saia do SI, pressionando F5 ou X
<ENTER>
- Pressione <ENTER> no programa.
- Pressione F12 para retornar a chamada
do programa, pressionando F8 você faz um STEP (Passo a passo) ou
F10 (Trace - Tipo passo a passo mas não vai executar passo a passo
dentro dos CALL's).
- Se você incluir BPX MESSAGEBOXA
(ou BPX MESSAGEBOX). Aí o programa vai parar, também na mensagem
de erro de Senha Inválida, bla, bla, bla...
CONCLUSÃO
Breakpoints, são sombra de dúvidas, uma das funções mais importantes do SI, você vai usá-los sempre que estiver debugando programas.