begin process at 2012 02 05 01:10:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Api Windows

 > PATCHER

PATCHER


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Api Windows Classé sous :pacth, correctif, maj, patcher, update Niveau :Débutant Date de création :22/07/2005 Date de mise à jour :22/07/2005 17:16:41 Vu :11 690

Auteur : sirozz

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Voici le code d'un patch. A la base c'est en fait le code d'un crack mais j'ai remplacé le nom du soft par "le soft" pour ne pas avoir de problèmes. C'est vraiment galère de trouver des infos sur l'utilisation des api avec NASM, alors pour éviter à d'autres de chercher pendant des heures (comment ouvrir le sélécteur de fichier par exemple), je poste ce code ici. Pour info, le soft concerné est la derniere version d'un célèbre logiciel de 3D, mais comme je ne précise pas lequel, je ne pense pas que ce que j'ai mis ici soit illégal.
(je fais de la bidouille pas de la programmation alors pitié svp)

Source

  • ; à compiler avec NASM :
  • ; http://quasar.astalavista.ms/tools/nasm32.zip
  • ; bin\nasm patch.asm -fobj
  • ; bin\alink patch.obj -oPE
  • [EXTERN SetFilePointer]
  • [import SetFilePointer kernel32.dll]
  • [EXTERN CreateFileA]
  • [import CreateFileA kernel32.dll]
  • [EXTERN WriteFile]
  • [import WriteFile kernel32.dll]
  • [EXTERN ExitProcess]
  • [import ExitProcess kernel32.dll]
  • [EXTERN CloseHandle]
  • [import CloseHandle kernel32.dll]
  • [EXTERN GetModuleHandleA]
  • [import GetModuleHandleA kernel32.dll]
  • [EXTERN MessageBoxA]
  • [import MessageBoxA user32.dll]
  • [EXTERN GetOpenFileNameA]
  • [import GetOpenFileNameA comdlg32.dll]
  • %include 'inc\win32\enums.inc'
  • [SECTION CODE USE32 CLASS=CODE]
  • ..start:
  • ; trouve un handle sur le processus
  • ; et sauve dans hInstance
  • push dword 0
  • call [GetModuleHandleA]
  • mov [hInstance], eax
  • ; Ouverture du browser
  • push dword OPENFILENAMESTRUCT
  • call [GetOpenFileNameA]
  • cmp eax, 0
  • jz error
  • ; ouverture du fichier avec CreateFileA
  • push dword 0
  • push dword FILE_ATTRIBUTE_NORMAL
  • push dword OPEN_EXISTING
  • push 0
  • push 0
  • push GENERIC_WRITE
  • push strFileBuffer
  • call [CreateFileA]
  • cmp eax, -1
  • jz error
  • ; sauve le handle du fichier
  • mov [fhandle], eax
  • ; --- patchs ---
  • ; eax = offset de l'octet à modifer
  • ; [modifs] = octet patché
  • mov eax, dword 0d633h
  • mov [modifs], byte 75h
  • call patch
  • mov eax, dword 0d63bh
  • mov [modifs], byte 84h
  • call patch
  • mov eax, dword 0da34h
  • mov [modifs], byte 85h
  • call patch
  • ; -------------
  • ; ferme le fichier
  • push dword [fhandle]
  • call [CloseHandle]
  • ; fin
  • jmp fin
  • error:
  • push dword 0
  • call [ExitProcess]
  • fin:
  • push MB_OK
  • push dword titre
  • push dword message
  • push dword 0
  • call [MessageBoxA]
  • jmp error
  • ; fonction patch
  • patch:
  • ; seek dans le fichier à la position eax
  • push dword FILE_BEGIN
  • push dword 0
  • push dword eax
  • push dword [fhandle]
  • call [SetFilePointer]
  • ; écriture de l'octet
  • push dword 0
  • push dword written
  • push dword 1
  • push dword modifs
  • push dword [fhandle]
  • call [WriteFile]
  • ret
  • [SECTION DATA CLASS=DATA USE32]
  • titre db "le soft (v7.0 fr) patch", 0
  • message db "le soft est maintenant cracké!", 0
  • modifs resd 1
  • fhandle resd 1
  • written resd 1
  • OPENFILENAMESTRUCT
  • lStructSize dd ENDSTRUCTOPENFILENAME - OPENFILENAMESTRUCT
  • hwndOwner dd 0
  • hInstance dd 0
  • lpstrFilter dd filter
  • lpstrCustomFilter dd 0
  • nMaxCustFilter dd 0
  • nFilterIndex dd 0
  • lpstrFile dd strFileBuffer
  • nMaxFile dd 255
  • lpstrFileTitle dd strTitleBuffer
  • nMaxFileTitle dd 255
  • lpstrInitialDir dd initialDir
  • lpstrTitle dd title
  • flags dd 0
  • nFileOffset dw 0
  • nFileExtension dw 0
  • lpstrDefExt dd 0
  • lCustData dd 0
  • lpfnHook dd 0
  • lpTemplateName dd 0
  • ENDSTRUCTOPENFILENAME
  • filter db ".Exe (*.exe)", 0, "*.exe", 0, 0
  • title db "Localisez le soft.exe...", 0
  • strFileBuffer resb 255
  • strTitleBuffer resb 255
  • initialDir db "c:\", 0
; à compiler avec NASM :
; http://quasar.astalavista.ms/tools/nasm32.zip
; bin\nasm patch.asm -fobj
; bin\alink patch.obj -oPE

[EXTERN SetFilePointer]
[import SetFilePointer kernel32.dll]
[EXTERN CreateFileA]
[import CreateFileA kernel32.dll]
[EXTERN WriteFile]
[import WriteFile kernel32.dll]
[EXTERN ExitProcess]
[import ExitProcess kernel32.dll]
[EXTERN CloseHandle]
[import CloseHandle kernel32.dll]
[EXTERN GetModuleHandleA]
[import GetModuleHandleA kernel32.dll]
[EXTERN MessageBoxA]
[import MessageBoxA user32.dll]
[EXTERN GetOpenFileNameA]
[import GetOpenFileNameA comdlg32.dll]

%include 'inc\win32\enums.inc'

[SECTION CODE USE32 CLASS=CODE]

..start:

; trouve un handle sur le processus
; et sauve dans hInstance
push dword 0
call [GetModuleHandleA]
mov [hInstance], eax


; Ouverture du browser
push dword OPENFILENAMESTRUCT
call [GetOpenFileNameA]
cmp eax, 0
jz error


; ouverture du fichier avec CreateFileA
push dword 0
push dword FILE_ATTRIBUTE_NORMAL
push dword OPEN_EXISTING
push 0
push 0
push GENERIC_WRITE
push strFileBuffer
call [CreateFileA]
cmp eax, -1
jz error
; sauve le handle du fichier
mov [fhandle], eax

; --- patchs ---
; eax = offset de l'octet à modifer
; [modifs] = octet patché

mov eax, dword 0d633h
mov [modifs], byte 75h 
call patch

mov eax, dword 0d63bh
mov [modifs], byte 84h
call patch

mov eax, dword 0da34h
mov [modifs], byte 85h
call patch

; -------------


; ferme le fichier
push dword [fhandle]
call [CloseHandle]

; fin
jmp fin

error:
push dword 0
call [ExitProcess] 

fin:
push MB_OK
push dword titre
push dword message
push dword 0
call [MessageBoxA]

jmp error

; fonction patch
patch:
; seek dans le fichier à la position eax
push dword FILE_BEGIN
push dword 0
push dword eax
push dword [fhandle]
call [SetFilePointer]

; écriture de l'octet
push dword 0
push dword written
push dword 1
push dword modifs
push dword [fhandle]
call [WriteFile]
ret


[SECTION DATA CLASS=DATA USE32]

titre          db          "le soft (v7.0 fr) patch", 0
message          db          "le soft est maintenant cracké!", 0
modifs          resd          1
fhandle          resd          1
written          resd          1


OPENFILENAMESTRUCT
lStructSize          dd          ENDSTRUCTOPENFILENAME - OPENFILENAMESTRUCT
hwndOwner          dd           0
hInstance           dd           0
lpstrFilter           dd filter
lpstrCustomFilter           dd           0
nMaxCustFilter           dd           0	
nFilterIndex           dd           0
lpstrFile           dd           strFileBuffer
nMaxFile           dd           255
lpstrFileTitle           dd           strTitleBuffer
nMaxFileTitle           dd           255
lpstrInitialDir           dd           initialDir
lpstrTitle           dd           title
flags           dd           0
nFileOffset           dw           0
nFileExtension           dw           0
lpstrDefExt           dd           0
lCustData           dd           0
lpfnHook           dd           0
lpTemplateName           dd           0
ENDSTRUCTOPENFILENAME


filter           db           ".Exe (*.exe)", 0, "*.exe", 0, 0		
title           db           "Localisez le soft.exe...", 0
strFileBuffer           resb           255
strTitleBuffer           resb           255
initialDir           db           "c:\", 0




 Historique

22 juillet 2005 17:16:41 :
Petit problème avec les tabulations sur l'affichage du code.

 Sources de la même categorie

Source avec Zip Source avec une capture BODY_ROTATION BASÉ SUR LE TRAVAIL DE TOM par jose2pepe
Source avec Zip Source avec une capture FROM TOM'S CUBE_ROTATION AND CUBE_5 CUBE COLOR RENDERIZED par jose2pepe
Source avec Zip REUTILISER N'IMPORTE QUEL PROGRAMME EX:WORDPAD par ToutEnMasm
Source avec Zip CRÉER DES TABLEAUX DE DONNÉES DE MANIÈRE DYNAMIQUE par ToutEnMasm
Source avec Zip AFFICHAGE DATE ET HEURE AVEC DES BITMAPS par jejamar

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture PATCH TOUT EXE 32BITS POUR Y INSERER UNE IMAGE (GIF ,JPG,BMP... par quoi

Commentaires et avis

Commentaire de silkscalp le 22/07/2005 20:27:22

Il y a un probleme avec les commentaire car des instruction comme
Call ; [CreateFileA]
CMP ; EAX, -1
Avec les commentaires, le call ne fait rien ni le CMP, etc.
Et pis ca serait sympa pour les novices de + commenter le code comme pour le PUSH dword Written ; a quoi correspond le written, à la valeur fixe 1 ?
Merci en tout cas, c'est sympa de voir de l'ASM.
++
Silkscalp

Commentaire de patatalo le 23/07/2005 11:06:24 administrateur CS

salut,

;---------------------------------------------------------
; ferme le fichier
push dword [fhandle]
call [CloseHandle]
; fin
jmp fin
error:
push dword 0
call [ExitProcess]
fin:
push MB_OK
push dword titre
push dword message
push dword 0
call [MessageBoxA]
jmp error

;------------------------------------------
; ferme le fichier
push dword [fhandle]
call [CloseHandle]
; fin
;jmp fin
fin:
push MB_OK
push dword titre
push dword message
push dword 0
call [MessageBoxA]
;jmp error
error:
push dword 0
call [ExitProcess]

pas plus mal, non ???

@++

Commentaire de silkscalp le 23/07/2005 16:53:48

OK merci pour l'info du written. Pour Kaena, si t'as modifié les octets a patcher, ce n'est pas un crack pour Kaena (si les octets que l'on doit modifier ne sont pas bon....) donc c'est légal.

Et pis c'est vrai que le source est PATATALO est plus court et plus clair. Il n''est pas "pas plus mal" il est mieux. Faut dire, les source de patch en ASM, il y a plein de facon de les faire et seule la pratique permet de coder rapidement sans se poser de question, de connaitre les retour dans eax etc.... .
En tout cas merci de votre présence car je trouve que l'ASM (Nasm, Masm, Tasm ou Fasm) manque cruellement de source comparé aux autres langages...
++
silkscalp
Tiens je vais envoyer un meltice....

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

check update [ par vincent2795 ] Bonjour, je suis a la recherche d' un tuto ou d' une source pour faire un chexk update. quand le prog ce lance il va vérifier sa version et regarder s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales