*** 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 list‚es 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 Acc‚s 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