Amstrad Plus Index du Forum

Amstrad Plus
Découverte de la gamme Old et Plus des Cpc d'Amstrad.

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

*****Initiation au Cracking sur Cpc

 
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation
Sujet précédent :: Sujet suivant  
Auteur Message
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Jeu 19 Oct - 02:11 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc Répondre en citant

Bonjour,

Cette rubrique porte assez bien son nom puisque je vais essayer de vous initier au Cracking ou plutôt devrais-je dire, à la mise en fichier de jeux en sectoriel.
Au vue de ma récente activité (tests de disquettes cpc au format dsk pour le nouveau firmware des lecteurs Gotek), mon choix s'est donc posé sur 3D Fight de Loriciels (avec un "s" à la grande époque). Vous pouvez également utiliser cette version diffusée sur Cpc Power de 3d Fight, dumpée par Dlfrsilver!

 


Le jeu démarre avec la commande |cpm
Je me dis alors que la disquette doit être formatée en vendor, avec des secteurs allant de #41 à #49.
Concernant les softs en Cpm, le fichier de boot se situe toujours en piste 0, secteur #41 et se charge en #100, pour être exécuté à la même adresse.

Je me suis donc fait un petit bout de code afin de lire ce fameux loader...
Code:
;
; Lecture Sect #41 | Piste 0 | adr  #100
; AsT/iMPact 18 Octobre 2017
;
 ORG #9000
 nolist
       LD HL,command ; #84 Lecture
       CALL #BCD4
       RET NC ; la commande n'a pas ete trouvee
       LD (adrom) , HL
       LD A,C
       LD (rom),A
       LD HL,#100 ; adresse tampon ou sera lu le secteur
       ld c,#41 ; secteur
       LD D,0 ; numero de piste
       LD E,0 ;numero du lecteur

       rst #18
       word adrom
       ret
adrom word 0
rom     byte 0
command byte #84









Ce petit bout de code permet comme il se doit de lire le secteur #41 de la piste 0 du lecteur 0 (A) à l'adresse #100. Il me semble que tout est expliqué dans le code, non ?

Une fois ce bout de code exécuté, voyons donc ce qui a été chargé en #100.

Code:
;
; Loader 3d Fight Loriciels 1985
;
      org #0100

;
      jp l0116 ; adresse exécution du loader #0116 ;
      word #6734
.l0105
      word #3e8 ; adresse de départ du jeu
.l0107
      word #59d8 ; longueur du fichier a charger
      jp #0bbd     ; adresse d'execution du jeu

;
      inc bc
      inc bc
      dec b
      ld bc,#0032
      ld (bc),a
      rrca
      rst #38
      dec b

;
.l0116
      call #01a1

;
      ld hl,#c000 ; oh ! ca ressemble a l'adresse d'un écran de présentation 17 k
      ld de,#4000 ; Ici nous avons la longueur
      ld c,#03       ; Secteur de départ
      call #01bd    ; Routine de lecture des secteurs | 1er Patch

;
      ld hl,(l0105) ; Adresse de départ du jeu
      ld de,(l0107) ; Longueur du prog
      ld c,#0a       ; Secteur de départ
      call #01bd   ; Routine de lecture des secteurs | 2nd Patch


      di
      ld hl,#b939
...etc...










Une fois le loader analysé, il ne me reste plus qu'à créer un patch et que celui-ci puisse enregistrer des fichiers une fois les secteurs chargés.
Le plus simple sera donc de remplacer la routine de lecture des secteurs situé en #1bd par la mienne. Le principe sera fort simple, lire les secteurs de 3d Fight sur le disc A, et faire la sauvegarde en fichier sur le disc B formaté en data pour la peine.

Voyons donc cela en détail.

Code:
;
; Loader boot système+Patch du Loader 3d Fight
; AsT/iMPact 18 Octobre 2017
;
       ORG #9000
 
       LD HL,command ; #84 Lecture
       CALL #BCD4
       RET NC ; la commande n'a pas été trouvée
       LD (adrom) , HL
       LD A,C
       LD (rom),A
       LD HL,#100 ; adresse tampon ou sera lu le secteur
       ld c,#41 ; secteur
       LD D,0 ; numéro de piste
       LD E,0 ;numéro du lecteur
       rst #18
       word adrom
;   
       ld hl,part1
       ld (#122),hl ; applique 1er Patch 
       ld hl,part2
       ld (#12e),hl ; applique 2nd Patch
       ld a,1 ; Sélectionne le drive B
       ld hl,(#be7d) ; on récupère l'adresse des points d'entrée de l'Amsdos
       ld (hl),a
       jp #100 ; exécute le loader de 3d Fight Patché
;
adrom word 0
rom  byte 0
command byte #84
;
part1 push hl:push de  
       call #1bd ; lis les secteurs
       ld hl,nom1 ; nom de la page de présentation
       ld de,#c000 ; buffer 2k
       ld b,11 ; longueur du nom du fichier
       call #bc8c ; on ouvre le fichier en écriture | c'est le #bc77 de l'écriture
       pop de:pop hl
       jr save1
;
part2 push hl:push de
       call #1bd ; lis les secteurs
       ld hl,nom2 ; nom du fichier de jeu
       ld de,#c000 ; buffer 2k
       ld b,11 ; longueur du nom du fichier
       call #bc8c ; on ouvre le 2ème fichier en écriture 
       ld bc,(#10A) ; récupère adresse d'exécution du jeu (soit #bbd)
       pop de:pop hl
       call save1
;
; Pour parfaire le tout, je crée mon propre loader en fichier
;
loader 
       ld hl,nom3
       ld de,#c000
       ld b,11
       call #bc8c
       ld de,finprog-prog
       ld hl,prog
       ld bc,prog
;
; Sauvegarde et fermeture des fichiers
;
save1 ld a,2
        call #bc98 ; enregistre le fichier
        jp #bc8F
;
nom3 byte "3DFIGHT.BIN"
;
; New Loader pour les fichiers sauvés
;
prog 
       ld hl,(#be7D) ; on récupère le numéro du drive
       ld a,(hl)
       ld i,a ; on le sauve dans I 
       ld c,7 ; réinitialisation de la rom 7 (Amsdos)
       ld de,#40
       ld hl,#b0ff
       call #bcce
       ld a,i ; on récupère le numéro du lecteur
       ld (#ac00),a ; y'a plus qu'à poker
       ld a,1 ; Mode 1 pour les Ouf !
       call #bc0e

; Chargement des fichiers les uns derrière les autres+ exécution
;
      ld hl,nom1 ; On charge la page de présentation
      ld de,#a000
      ld b,11
      call #bc77
      ex de,hl
      call #bc83
      call #bc7a
;
      ld hl,nom2 ; On charge le jeu
      ld de,#a000
      ld b,11
      call #bc77
      
      ld ix,(#be7d) ; récupère adresse exécution du jeu dans le header
      ld bc,#fe
      add ix,bc
      ld l,(ix+0)
      ld h,(ix+1)

      push hl
      ex de,hl
      call #bc83
      call #bc7a
      pop hl
      pop bc
      call #b90f
      jp (hl) ; Exécution du jeu est contenue dans hl
;
nom1 byte "3DFIGHT.SCR"
nom2 byte "3DFIGHT.BI1"
finprog










Si tout a bien fonctionné, vous devriez vous retrouver avec 3 fichiers "3D fight" créés sur le disk B.



On vérifie que tout a bien fonctionné en lançant la commande ->  run"3dfight.bin
Notez quand même que le Loader fonctionne aussi bien sur lecteur A que sur lecteur B. Il est aussi 100% compatible iMPdos donc compatible x-Mass !
Elle est pas belle la vie ?
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Publicité






MessagePosté le: Jeu 19 Oct - 02:11 (2017)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
TOUKO


En ligne

Inscrit le: 06 Sep 2017
Messages: 20

MessagePosté le: Jeu 19 Oct - 09:23 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc Répondre en citant

Cool, c'est marrant de découvrir comment les cracks de jeux pouvaient être fait , merci !  Okay  

Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Jeu 19 Oct - 09:28 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc Répondre en citant

Disons que c'est mon inspiration du moment !!!
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
cmp


Hors ligne

Inscrit le: 08 Sep 2014
Messages: 90
Localisation: nord

MessagePosté le: Jeu 19 Oct - 20:08 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc Répondre en citant

Article sympa ^^ j’ai l’impression de me retrouver 26ans en arrière Smile je préférais plus le crack de musiques à l’époque.

Par contre j’utilisais un debugger hexa dont j’ai totalement oublié le nom
_________________
CMP from impact cpc


Revenir en haut
Skype
Lone


Hors ligne

Inscrit le: 17 Déc 2014
Messages: 100

MessagePosté le: Jeu 19 Oct - 21:13 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc Répondre en citant

Super article ! Ca donne effectivement une bonne idée de certaines manières de procéder !

Revenir en haut
Francouai


Hors ligne

Inscrit le: 23 Avr 2017
Messages: 89
Localisation: IDF

MessagePosté le: Ven 20 Oct - 08:39 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc Répondre en citant

Donc si j'ai bien compris, cette protection etait juste un codage des fichiers en sectoriel pour éviter qu'on voit les fichiers et du coup des rips de musique ou sprite ou autre  ?
_________________
--
Francouai
6128+, ATARI STe, ATARI FALCON, AMIGA 1200.


Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Ven 20 Oct - 10:56 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc Répondre en citant

En fait, je ne sais pas si protection il y avait ou pas, j'ai juste utilisé son propre loader pour charger chacune des parties puis les ai sauvegardé au fur et à mesure...
Le principe était de prendre un jeu en secteur et de le passer en fichier, cool non ?
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
cmp


Hors ligne

Inscrit le: 08 Sep 2014
Messages: 90
Localisation: nord

MessagePosté le: Ven 20 Oct - 11:02 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc Répondre en citant

En tout cas Smile j'ai trouvé le sujet intéressant ^^ Smile
_________________
CMP from impact cpc


Revenir en haut
Skype
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Ven 20 Oct - 11:40 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc Répondre en citant

cmp a écrit:
En tout cas Smile j'ai trouvé le sujet intéressant ^^ Smile



C’était l’objectif mais merci. Regardez surtout l’heure à laquelle j’ai écrit mon article ^^
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
cmp


Hors ligne

Inscrit le: 08 Sep 2014
Messages: 90
Localisation: nord

MessagePosté le: Ven 20 Oct - 11:53 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc Répondre en citant

3H du mat Smile t'es un fou toi ^^ Et Pam alors ? Smile PAS BIEN  Mort de Rire
_________________
CMP from impact cpc


Revenir en haut
Skype
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 00:05 (2017)    Sujet du message: *****Initiation au Cracking sur Cpc

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com