Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 30 Nov 2025, 00:29

Index du forum » Software

Le fuseau horaire est UTC+1 heure


Protections sur Amstrad CPC

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 5 sur 16
 [ 228 message(s) ]  Aller vers la page Précédent  1, 2, 3, 4, 5, 6, 7, 8 ... 16  Suivant
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
markerror
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 20 Sep 2008, 07:59 
Hors-ligne
VIP
VIP

Inscription : 04 Sep 2007, 19:43
Message(s) : 739
Pour faire un "vrai" fichier Basic du chargeur, c'est pas bien compliqué. Il suffit de charger en mémoire le fichier (Hacker, ou routine utilisant les vecteurs système), puis de le sauver à partir de &170 en indiquant qu'il s'agit d'un fichier Basic.

Ce type de "protection" a été utilisée à ma connaissance pour la première fois dans un vieux jeu d'aventure que j'ai transféré il y a peu de temps, "Le Dernier Metro". Ce n'est pas très courant dans les softs commerciaux, et à part Hercule, je l'ai trouvé aussi dans un éducatif dont ke nom m'échappe pour l'instant...

Ces routines pour la plupart se plantent sur CPC Plus, pour une sombre raison de connexion des rom. Faudra d'ailleurs que je mette à jour mon site, j'ai une routine debugguée qui fait ce genre de bidouille...

T&J/GPA


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 20 Sep 2008, 09:29 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5103
sous winape tu sauve les données en &170 pui apres un reset tu les recherchage .. si j'avais ton orginal je te fais ca en deux deux :bomb:


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 20 Sep 2008, 10:01 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
allez, je te lance une autre idée...

vu que tu as les octets du programme basic...

tu les pokes en mémoire à partir du basic et tu listes le résultat...

simple non ?! ;-)

Bonne suite... Allez au boulot ! :D

P.S : markerror & Hermol -> je crois que le but de Babar est de ne pas utiliser d'émulateur ou cartouche pour rendre le truc copiable...juste pour se prouver qu'il peut le faire sur un vrai cpc sans truc additionnel !!! 8)


Haut
 Profil  
 
Babar
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 20 Sep 2008, 14:26 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
Megachur a écrit :
vu que tu as les octets du programme basic...
tu les pokes en mémoire à partir du basic et tu listes le résultat...
simple non ?! ;-)

D'une logique implacable ! Mignon comme idée ! Mais un peu long à mettre en oeuvre.

hERMOL a écrit :
sous winape tu sauve les données en &170 pui apres un reset tu les recherchage ..

J'ai essayé de faire "save snapshot" du menu "File", puis Reset, puis load"snapshot" mais ça lance le Basic automatiquement donc je ne peux pas LISTer.
J'ai aussi essayé dans le Debuggeur de faire "save data" (la petite disquette) en format .bin, mais ça ne marche pas.
HERMOL, tu "sauves en &170" comment sous WinAPE ?

markerror a écrit :
puis de le sauver à partir de &170 en indiquant qu'il s'agit d'un fichier Basic

Je n'ai plus la Bible du PC donc je ne sais pas quel CALL permet de sauver un fichier...

Megachur a écrit :
je crois que le but de Babar est de ne pas utiliser d'émulateur

C'est vrai qu'il n'y a pas de mérite à appuyer sur un bouton de Multiface...ça n'a aucune subtilité.
D'ailleurs avec Hercule II en jouant avec le Débuggeur de WinAPE je suis arrivé assez rapidement à une routine qui XOR la suite du programme. Cracker avec WinAPE est un jeu d'enfant !
Mais je suis arrivé au milieu de la protection sans comprendre ce qui s'était passé avant, donc va falloir continuer là où on en était.

En plus j'ai découvert le Débuggeur WinAPE avec ses Breakpoints, etc, un REGAL !!! :magic:

Et surfer toute la mémoire du CPC d'un coup d'ascenseur c'est OVER GRAND !

De préférence j'aimerais déplomber le soft sans émulateur, sans tricherie, à l'ancienne, mais si la modernité peut nous faire gagner du temps, vu qu'on en a pas bcp... 8)

L'idée de fond est d'être ingénieux, et d'apprécier l'ingéniosité donc la beauté (?) d'une protection, et de jouer à la déplomber...mais sans émulateur/multiface ce qui reviendrait à se mettre VieInfinies sur un jeu, ou un personnage avec 25 en Force à Dungeons&Dragons :kissed:


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 20 Sep 2008, 17:32 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5103
Babar a écrit :
hERMOL a écrit :
sous winape tu sauve les données en &170 pui apres un reset tu les recherchage ..

J'ai essayé de faire "save snapshot" du menu "File", puis Reset, puis load"snapshot" mais ça lance le Basic automatiquement donc je ne peux pas LISTer.
J'ai aussi essayé dans le Debuggeur de faire "save data" (la petite disquette) en format .bin, mais ça ne marche pas.
HERMOL, tu "sauves en &170" comment sous WinAPE ?


dans le debugger , comme sur le screenshot :

Image

tu selectionne ta partie à sauver dans la RAM et non pas dans la ROM ( "write" doit être coché )


Haut
 Profil  
 
Babar
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 21 Sep 2008, 14:47 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
Merci hERMOL. Cool ce WinAPE !


Haut
 Profil  
 
Babar
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 21 Sep 2008, 14:59 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
DEPLOMBAGE D'HERCULE II: solution de l'étape 1

L'objectif est de pouvoir LISTer la partie Basic du fichier ESAT hybride binaire-basic:
    Charger DAMS en &4000
    Faire NEW pour enlever le Basic de Dams
    load"ESAT",&A000
    Dans Dams faire un LDIR pour repositionner le code Esat chargé en &A000 vers son adresse originale &134
    Taper "B" dans Dams pour retourner au Basic, il suffit de faire LIST

Ce Basic ne semble pas protégé, il charge l'écran de présentation, puis ensuite fait un RUN"LATIS" (on peut penser que cette protection du Basic avait pour objectif de ne pas permettre à Monsieur/Madame tout le monde de faire sauter l'écran de présentation trop facilement ?)


Haut
 Profil  
 
Babar
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 21 Sep 2008, 15:13 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
DEPLOMBAGE D'HERCULE II: étape 2: le fichier LATIS.BAS

Ce fichier est protégé par un SAVE ,P...
Solution: on peut le loader à partir du binaire tout en faisant sauter la protection (d'ailleurs j'ai pas trouvé l'endroit dans le Catalogue de la D7 où est le flag de protection à faire sauter..si quelqu'un sait...je l'ai fait avec un petit prog en Basic).

Ensuite en faisant LIST, on n'a que 4 lignes de remarques.
Les autres lignes, visiblement, ou plutôt invisiblement, n'apparaissent pas !

Les lignes Basic commencent en effet par 4 octets qui précisent le N° de ligne, et la longueur de la ligne. On peut rendre des lignes invisibles en modifiant cette longueur.
Or il s'avère que la Longueur de la ligne n'est utilisée que par la commande LIST, et pas par la commande RUN, donc l'affichage est perturbé, mais l'exécution du programme Basic est toujours possible.

Laissez-moi le temps de repositionner la bonne longueur de chaque ligne (ce qui sera pas évident, car faut pouvoir identifier la fin d'une ligne, quelqu'un sait-il s'il y a un code de fin de ligne et lequel ?)


Haut
 Profil  
 
Babar
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 26 Oct 2008, 17:16 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
étape 2: obtenir le LISTing du basic LATIS.BAS (qui n'affiche que 4 lignes alors qu'il y en a bcp plus):

Remarque1 : quand on dumpe la partie de la mémoire correspondant au programme Basic, on distingue une liste de DATA : F3, F1, ED,… On peut raisonnablement imaginer que le code Basic poke ces valeurs en mémoire pour les exécuter ; en les pokant, on obtient ceci :

Code :
DI
POP AF
IM 2
RLCA
DAA
LD I,A
RET PO
XOR (HL)
LD D,A
LD BC,#1914
IN A,(C)
ADD D
LD I,A
LD HL,#7000
OTIR
RET

La suite d’instructions est logique (c-a-d que ce n’est pas une suite incohérente de données, mais vraiment du code assembleur) par contre pour savoir ce que cela peut bien faire concrètement…en tous cas ça concerne les interruptions…


Remarque 2: en faisant ce dump de la partie Basic, on peut aussi lire ceci :

FOR N=&170 TO &2C0:IF PEEK(N)>&1F THEN ?CHR$(PEEK(N));:NEXT N

…ce qui affiche le copyright et autres noms d’auteurs.
D’ailleurs la visibilité sur les commande « FOR N… » ci-dessus n’est pas logique, car en Basic les commandes ne sont pas représentées par des codes Ascii mais par des codes internes, donc le fait de voir cette ligne est un clin d’œil volontaire du programmeur…a priori pour faire tourner en bourrique le cracker, et insister sur le nom du logiciel, l'éditeur, etc…


Dernière édition par Babar le 27 Oct 2008, 00:43, édité 1 fois.

Haut
 Profil  
 
Babar
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 26 Oct 2008, 17:39 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
Babar a écrit :
Laissez-moi le temps de repositionner la bonne longueur de chaque ligne (ce qui sera pas évident, car faut pouvoir identifier la fin d'une ligne, quelqu'un sait-il s'il y a un code de fin de ligne et lequel ?)

Visiblement personne n'avait la réponse, en creusant un peu il semblerait en fait que les lignes du Basic soient terminées par un 00.

Pour positionner les bonnes longueurs de ligne, j'ai préféré développer un petit programme automatique (que vous pourrez ainsi réutiliser car de mémoire plusieurs jeux étaient protégés de la sorte) qui cherche le prochain zéro, recalcule la longueur de la ligne et la corrige, ceci pour tout le programme Basic:

Code :
ld hl,#170

b1: push hl
pop de
inc hl
inc hl
ld a,(hl)
inc hl
add a,(hl)
ret z

ld bc,4
cherche0: inc hl
ld a,(hl)
inc bc
or a
jr nz,cherche0

ld a,c
ld (de),a
inc dec
ld a,b
ld (de),a
inc hl
jr b1

Oui, d'accord la programmation n'est pas très pro...mais ça faisait 23 ans que je n'avais plus programmé en Z80 !!!

[Texte ajouté + tard au msg] Après avoir creusé, en fait ce programme ne fonctionnera pas bien, car si en effet chaque ligne se termine par un zéro, il peut y avoir des zéros en milieu de ligne par exemple dû à un poke(&AC00) avec le 00 du AC00...donc pour bien recaler les longueurs de ligne, soit il faut décoder chaque token Basic pour faire des sauts de puce, soit tatonner visuellement...et c'est ce que je fais, et ça marche pas mal, bientôt fini...

Par contre cela ne suffit pas pour obtenir tout le listing de latis.bas, car on n'obtient que 3 lignes de plus qui ne sont que des commentaires...
Il y a visiblement insérées au milieu plusieurs lignes factices qui ne semblent pas exécutées par le Basic mais qui perturbent l'affichage du Listing, donc on ne peut pas voir la suite du programme Basic.
J'ai tatonné pendant plus d'une heure à essayer de recoller les longueurs de ligne (en essayant de sauter les lignes factices) mais je n'ai réussi qu'à obtenir une seule ligne supplémentaire: :cry:

270 INK 0,0:INK 1,15:PEN 1:PAPER 0

...oui, bon, je galère...mais je vous tiens au courant dès que j'arrive au bout du Basic... :?

(évidemment si quelqu'un a une idée...? Ma technique est simplement de me placer sur la dernière ligne Basic qui s'affiche bien, et d'augmenter sa longueur pour sauter la ligne suivante et etc sauter chaque ligne qui suit jusqu'à ce que la ligne suivante s'affiche correctement...et rebelote)


Dernière édition par Babar le 29 Oct 2008, 14:00, édité 1 fois.

Haut
 Profil  
 
dlfrsilver
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 26 Oct 2008, 22:53 
Hors-ligne
Rulezzzzz
Rulezzzzz

Inscription : 29 Août 2007, 12:04
Message(s) : 2009
Localisation : seine et marne 77
Je l'ai choppé sur ebay, mais le dump ne marche sur aucun émulateur.....

Enfin, sur CPCE on arrive jusqu'a l'écran LATIS sur winape il arrive meme pas à lire le catalogue (m'énerve celui-là!)
et wincpc ça n'arrive pas à l'écran de présentation.....

_________________
SPS Community Expert (SPS CE) / SPS France


Haut
 Profil  
 
Babar
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 27 Oct 2008, 00:21 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
Salut dlfrsilver,
(même si ta remarque n'est pas dans le sujet de ce post, et plutôt dans le post référencé ci-dessous, elle est intéressante)

* Si tu parles d'un dump original d'Hercule II, ça paraît logique qu'il ne soit pas émulable car sa protection doit être très "couches basses code machine", on va d'ailleurs pas tarder à y arriver dans ce post une fois que j'aurai franchi le Basic...

* Si tu parles d'un dump déplombé, et qui a du mal à fonctionner car chaque programme fait appel plus ou moins directement au FDC, c'est logique aussi, et tu trouveras le résultat de mes tests en cliquant là. En synthèse seul WinAPE semble arriver à le faire fonctionner + ou - après avoir décoché FastDriveEmulation.


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 27 Oct 2008, 08:47 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5103
dlfrsilver a écrit :
Envoyez les dumps les gars, même le dump plombé nous on prend !


je veux bien y jeter un oeil, mais j'ai pas ton original Babar, autant travailler sur la même version non ?


Haut
 Profil  
 
Babar
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 29 Oct 2008, 00:39 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
(hERMOL comment je peux te transmettre le dump ?)

étape 2: obtenir le LISTing du basic LATIS.BAS (qui n'affiche que 4 lignes alors qu'il y en a bcp plus):

Remarque3 : quand on dumpe la mémoire du programme Basic on voit un LATIS.BIN, donc on peut supposer que c'est la suite du programme.
Voici son contenu:

Code :
org #8000

ld a,#01
ld (#be66),a  inhibe les erreurs
ld (#be78),a        1 seul essai
ld c,#07
call #b90f      ROM7 disquette
ld a,r          recupere la valeur R  (interruptions)
ld d,a           
ld c,a                secteur a lire
ld hl,#7000     emplacement ou mettre le secteur lu
push hl
ld e,l

.l8016  ld a,d
and #1f
ld d,a             d est la piste
call #c03c      lis un secteur
jp c,#7000      execute le contenu du secteur si Carry
ld a,r          modifie la Piste et le Secteur en fonction de R
ld c,a
add #ad
ld d,a
jr l8016              retourne a la lecture de secteur


Tout ceci me laisse perplexe, notamment le fait de lire une Piste/Secteur basée sur R dont je ne vois pas d'où peut bien venir la valeur...donc je préfère continuer à rendre visible les lignes du Basic...


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Protections sur Amstrad CPC
Message Publié : 29 Oct 2008, 05:06 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5103
Babar a écrit :
(hERMOL comment je peux te transmettre le dump ?)


https://cpcrulez.fr/forum/faq.php#f90

les fichiers autoriser sont les .zip , donc zip ton fichier .dsk et join le au message ...

le dialog est la , en bas de la page : http://cpcrulez.free.fr/img/phpbbfiles.jpg


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 5 sur 16
 [ 228 message(s) ]  Aller vers la page Précédent  1, 2, 3, 4, 5, 6, 7, 8 ... 16  Suivant

Index du forum » Software

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 50 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.