                         *** S o F t I c E   h E l P ***
                                    By Sayan
                              Maintenue By DarkBug


Salut ce fichier est destine aux personnes voulant commencer a cracker des
progs avec SoftICE.

1)Faire charger les symbols a SoftICE 
 
Pour verifier que SoftICE a charge les symbols pour GetWindowText, entrer dans 
SoftICE en faisant Ctrl+D et tapez ceci: 
	:exp getwindowtext 
Si vous n'obtenez pas toutes les functions GetWindowText listes alors 
il faut editer le fichier \SIW95\WINICE.DAT et enlever les (';') devant les
dll suivantes : kernel32.dll, user32.dll, gdi32.dll qui sont les
plus importantes.
 
Ensuite il faut rebooter pour prendre en compte les modifications. 

2)Conseils

Lorsque vous utilisez SoftICE, veillez bien a faire au moins une fois ces
instructions avant de commencer a cracker :

CODE ON : affiche le source en code Hexa,
          utile pour editer plus tard le fichier .exe
R       : affiche le contenu des registres
DATA    : affiche la memoire

Pour evitez de tappez cela a chaque demmarage editez /Siw95/winice.dat et
remplacez la chaine INIT par
INIT="X;CODE ON;DATA;R;"

3)Voici une liste des functions qui devraient arreter SoftICE
pendant un crack :
  
Lecture/Ecriture de fichier :  

ReadFile  
WriteFile  
CreateFileA  
  
Lecture de donnees d'un fichier INI :  

GetPrivateProfileStringA  
GetPrivateProfileIntA  
WritePrivateProfileStringA  
WritePrivateProfileIntA  
  
Accs a la base de registre:  

RegCreateKeyA  
RegDeleteKeyA  
RegQueryValueA  
RegCloseKeyA  
RegOpenKeyA  
  
Boites de Dialogues:  

GetWindowTextA  
GetDlgItemTextA  
GetDlgItemInt  
  
Boite de messages:  

MessageBox  
MessageBoxA  
MessageBoxExA  
MessageBeep  
  
Date et Heure :
  
GetLocalTime  
GetSystemTime  
  
GetFileTime  
  
Creation d'une fenetre comme un NAG-Screen :
  
CreateWindowExA
ShowWindow

4)Modifier le programme

Voil une liste d'opcodes sous leur forme hexadecimal:

00 add ????,XX
01 add XX,XX
02 add ax,XXxxxx|add XX,XX
03 add XX,XX
04 add al,xx
05 add ax,xxxx
06 push es
07 pop es
08 or xxxx,XX
09 or XX,XX
0A or XX,xxxx! ?
0B or XX,xxxx! ?
0C or al,xx
0D or ax,xxxx
0E push cs
0F shrd|imul ????
10 adc XX,XX ?
11 adc xxxx,SP ?
12 adc XX,XX
13 adc XX,xxxx
14 adc al,xx
15 adc ax,xxxx
16 push ss
17 pop ss
18 sbb XX,XX ?
19 sbb xxxx,XX|sbb XX,XX
1A sbb XX,XX
1B sbb XX,XX ?
1C sbb al,xx
1D sbb ax,xxxx
1E push ds
1F pop ds
20 and XX,XX ?
21 and XX,XX ?
22 and XX,XX
23 and XX,xxxx|and XX,XX
24 and al,xx
25 and ax,xxxx
26 cmp ??????
27 daa
28 sub XX,XX
29 sub xxxx,XX ?
2A sub XX,XX ?
2B sub XX,XX
2C sub al,xx
2D sub ax,xxxx
2E mov XX,xxxx
2F das
30 xor XX,XX ?
31 xor XX,XX ?
32 xor ?????|xor XX,XX
33 xor ?????
34 xor al,xx
35 xor ax,xxxx
36 xor XX,XX ?
37 aaa
38 cmp XX,XX ?
39 cmp xxxx,XX
3A cmp Xx,Xx ?
3B cmp XX,xxxx|cmp XX,XX
3C cmp al,xx
3D cmp ax,xxxx
3E and XX,XX ?
3F aas
40 inc ax
41 inc cx
42 inc dx
43 inc bx
44 inc sp
45 inc bp
46 inc si
47 inc di
48 dec ax
49 dec cx
4A dec dx
4B dec bx
4C dec sp
4D dec bp
4E dec si
4F dec di
50 push ax
51 push cx
52 push dx
53 push bx
54 push sp
55 push bp
56 push si
57 push di
58 pop ax
59 pop cx
5A pop dx
5B pop bx
5C pop sp
5D pop bp
5E pop si
5F pop di
60 pusha
61 popa
62 bound XX,XX ?
63 arpl XX,XX ?
64 Coprocessor instr ??
65 Coprocessor instr ??
66 instr de 386
67 Coprocessor instr ??
68 push xxxx
69 imul ????
6A push xx
6B imul ????
6C insb
6D insw
6E outsb
6F outsw
70 jo xx
71 jno xx
72 jc xx
73 jae xx|jnc xx
74 je xx|jz xx
75 jne xx|jbe xx|jnz xx
76 jbe xx
77 ja xx
78 js xx
79 jns xx
7A jp xx
7B jnp xx
7C jl xx
7D jge xx
7E jle xx
7F jg xx
80 xor xxxx!,xx ?
81 add XX,xxxx
82 sbb ?????|and XX!,xx
83 add XX,xx ?
84 test XX,XX ?
85 test XX,XX ?
86 xchg xxxx!,Xx
87 xchg XX,xxxx
88 mov xxxx,XX ?
89 mov XX,XX ?
8A mov Xx,Xx|mov XX,xxxx
8B mov xx,xxxx
8C mov XX,XX
8D lea XX,xx|lea XX,xxxx ?
8E mov XX,XX ?
8F pop ??????
90 nop
91 xchg ax,cx
92 xchg ax,dx
93 xchg ax,bx
94 xchg ax,sp
95 xchg ax,bp
96 xchg ax,si
97 xchg ax,di
98 cbw
99 cwd
9A call far xxxx:xxxx
9B wait
9C pushf
9D popf
9E sahf
9F lahf
A0 mov al,xxxx!
A1 mov ax,xxxx!
A2 mov xxxx!,al
A3 mov xxxx,AX
A4 movsb
A5 movsw
A6 cmpsb
A7 cmpsw
A8 test al,xx
A9 test ax,xxxx
AA stosb
AB stosw
AC loadsb
AD loadsw
AE scasb
AF scasw
B0 mov al,xx
B1 mov cl,xx
B2 mov dl,xx
B3 mov bl,xx
B4 mov ah,xx
B5 mov ch,xx
B6 mov dh,xx
B7 mov bh,xx
B8 mov ax,xxxx
B9 mov cx,xxxx
BA mov dx,xxxx
BB mov bx,xxxx
BC mov sp,xxxx ?
BD mov bp,xxxx
BE mov si,xxxx
BF mov di,xxxx
C0 shl XX,xx ?
C1 shl XX,xx ?
C2 retn xxxx
C3 retn
C4 les XX,xxxx
C5 lds XX,xx
C6 mov ???????
C7 mov xxxx!,XX
C8 enter xxxx,xx
C9 leave
CA retf xxxx
CB retf
CC int 3
CD int xx
CE into
CF iret
D0 shr XX,1|ror XX,1|ror XX,1 ?
D1 shl XX,1 ?|rcl XX,1 ?
D2 sal xx,XX|rol Xx,Xx|rcr xxxx!,Xx ?
D3 shl xxxx!,Xx|sar xxxx!,Xx ?
D4 aam ????
D5 aad ????
D6 Got no idea !
D7 xlat
D8 esc ????
D9 esc 1,[di]
DA esc ???|fisub xx
DB esc ???
DC esc 4,[bx]
DD esc ???
DE esc ???
DF esc ???|fbld xx
E0 loopnz xx
E1 loopz xx
E2 loop xx
E3 jcxz xx
E4 in al,xx
E5 in ax,xx|cmc
E6 out xx,al
E7 out xx,ax
E8 call xxxx
E9 jmp xxxx
EA jmp far xxxx:xxxx
EB jmp short xxxx
EC in al,dx
ED in ax,dx
EE out dx,al
EF out dx,ax
F0 lock
F1 Got no idea !
F2 repne
F3 rep
F4 hlt
F5 cmc
F6 mul XX!|neg XX!|not Xx ?
F7 div xxxx|imul xxxx|not XX ?
F8 clc
F9 stc
FA cli
FB sti
FC cld
FD std
FE inc XX|dec XX
FF inc XX:xxxx|jmp XX


5)Faire un programme de patch

Voila la source d'un programme de Patch en asm:

---------------------------------------------------------------------- 
---------------------------------------------------------------------- 
.MODEL SMALL
.386
.STACK 100H

.CODE

;AFFICHE LES MESSAGES
Affiche_Message proc
        mov ah,09h
        lea dx,Message1
        int 21h
        lea dx,Message2
        int 21h
        ret
Affiche_Message endp

Modif proc
        push ax          
        mov ah,42h
        xor al,al
        pop bx
        push bx
        mov dx,0EA6Fh
        mov cx,03h
        int 21h          ;VA A L'OFFSET 03EA6H
        mov ah,40h
        pop bx
        push bx
        mov cx,2         ;ECRIT DEUX OCTETS
        lea dx,TPatch1   ;POINTE SUR LES OCTETS A ECRIRE
        int 21h

        mov ah,3eh       ;PUTAIN QU'ELLE FEIGNASSE D'AVOIR ECRIT CA :)
        pop bx           ;IL FERME ET ROUVRE LE FICHIER POUR REVENIR A 0
        int 21h
        mov ax,3d02h
        lea dx,File
        int 21h

        push ax
        mov ah,42h
        xor al,al
        pop bx
        push bx
        mov dx,0ECF0h
        mov cx,03h
        int 21h         ;MODIFIT L'OCTET A 03ECF0H
        mov ah,40h
        pop bx
        push bx
        mov cx,1        ;ECRIT UN SEUL OCTET
        lea dx,TPatch2  ;POINTE SUR L'OCTET
        int 21h

        mov ah,3eh      ;ET PIS FERME LE FICHIER
        pop bx
        int 21h
        ret
Modif endp

;LE PROGRAMME COMMENCE ICI

debut:
mov ax,@CODE        ;INITIALISE LE SEGMENT DE CODE=DATA
mov ds,ax

mov ax,03           ;CLEAN THE SCREEN 
int 10h

call Affiche_Message ;AFFICHE LES MESSAGE 1&2

mov ax,3d02h
lea dx,File
int 21h               ;ESSAYE D'OUVRIR LE FICHIER
jb Erreur_Ouverture   ;SI UN PROB SAUTE A Erreur_Ouverture

call Modif            ;MODIFIE LE PROGRAMME

mov ah,09h
lea dx,Finish
int 21h               ;AFFICHE LA REUSSITE

jmp end_of_all        ;ET PIS QUITTE

Erreur_Ouverture:     ;AFFICHE UN MESSAGE D'ERREUR
mov ah,09h
lea dx,Erreur
int 21h

end_of_all:

mov ax,4C00h           ;QUITTE LE PROGRAMME
int 21h

Message1 DB "                            Crack for An Application",13,10,"$"
Message2 DB "                              By DarkBug of Weapon",13,10,13,10,"$"

Trying   DB "Try to Patch Setup.exe",13,10,13,10,"$"
File     DB "Setup.exe",0
Erreur   DB "Error:",13,10,"The File Setup.exe can't be found...",13,10,"$"
Finish   DB "Setup.exe successfully Patched!!!",13,10,"$"

TPatch1  DB 0EBh,35h ;Deux octets  modifier en 0EBh
TPatch2  DB 085h ;Le deuxieme octet est  modifier en 085H

END debut
---------------------------------------------------------------------- 
---------------------------------------------------------------------- 

6)Conclusion

Voila avec ca vous devriez cracker pas mal de trucs.

By Sayan : sayan@caramail.com
Maintenue by SaTaNiK: freaking@caramail.com
