Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Pour killer Ring d'Ariolasoft en K7, le keytone consiste en ceci :
un bloc de 4000 pulses (17 samples chacun en moyenne, donc 17*3500000/44100= 1350 T par pulse) suivi d'un bruit court et ensuite d'un bloc encore plus petit de 83 pulses (20 samples chacun en moyenne, 20*3500000/44100= 1587 T par pulse).
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Bon on a un gros souci avec le keytone de ce jeu.
déjà, la version dumpée par Megachur ne fonctionne pas sur mon CPC 464. La clé est perçue comme invalide par ce dernier.
Par contre, j'ai dumpé l'original que m'a confié Loic Daneels, et le keytone permet de finir le chargement du jeu.
Problème : César a calculé via le WAV que je lui ai envoyé le nombre de T et le nombre de pulse. Mais voilà, là encore, les blocs pure tones générés fonction du calcul de César comme celui de Megachur ne fonctionnent pas sur un vrai CPC.
Qui peut extraire la routine de la protection et documenter très exactement ce qu'elle fait, et demande exactement ?
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Voici la clé telle que je l'ai enregistrée, et qui est lue et qui fonctionne sur un vrai CPC en pièce jointe.
Si quelqu'un peut extraire donc la routine de protection, et la commenter, tout en examinant le bout de WAV que j'ai inclus, ça permettrait de comprendre d'ou vient le problème.
Est-ce que c'est simplement les outils de conversion qui sont pas assez précis ?
Est-ce que la routine requiert quelque chose de particulier côté signal ?
etc etc.....
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Megachur a écrit :
@dlfrsilver : compare déjà ce fichier wav avec ta clé dans ton cdt...
on en reparlera après ton analyse...
si tu peux essayer ce wav aussi sur ton amstrad stp !?
justement, la clé dans le CDT a été crée FONCTION des infos du WAV original. Cesar a fait le calcul exactement comme toi tu l'as fait pour ton propre CDT.
Mais pour ton CDT comme celui de César, mon 464 refuse les deux, parce que la routine nécessite un résultat exact (elle requiert apparemment une précision absolue).
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 12 Juin 2008, 20:29 Message(s) : 1711
dlfrsilver a écrit :
Megachur a écrit :
@dlfrsilver : compare déjà ce fichier wav avec ta clé dans ton cdt...
on en reparlera après ton analyse...
si tu peux essayer ce wav aussi sur ton amstrad stp !?
justement, clé dans le CDT a été crée FONCTION des infos du WAV original. Cesar a fait le calcul exactement comme toi tu l'as fait pour ton propre CDT.
Mais pour ton CDT comme celui de César, mon 464 refuse les deux, parce que la routine nécessite un résultat exact (elle requiert apparemment une précision absolue).
--> est-ce que tu as essayé le wav que je t'ai fourni en .zip sur ton cpc 464+ ?
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Megachur a écrit :
dlfrsilver a écrit :
Megachur a écrit :
@dlfrsilver : compare déjà ce fichier wav avec ta clé dans ton cdt...
on en reparlera après ton analyse...
si tu peux essayer ce wav aussi sur ton amstrad stp !?
justement, clé dans le CDT a été crée FONCTION des infos du WAV original. Cesar a fait le calcul exactement comme toi tu l'as fait pour ton propre CDT.
Mais pour ton CDT comme celui de César, mon 464 refuse les deux, parce que la routine nécessite un résultat exact (elle requiert apparemment une précision absolue).
--> est-ce que tu as essayé le wav que je t'ai fourni en .zip sur ton cpc 464+ ?
testé ce soir sur mon 464 standard.
La clé de ce WAV est erronée, son résultat étant faux, la routine de la protection fait faire un reset à mon CPC.
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
ah tant que j'y suis, explications supplémentaires :
la routine de protection gère manifestement 3 états différents :
1) je reconnais pas clé, donc j'attends indéfiniment la valeur dont j'ai besoin
2) je reconnais la clé, mais les valeurs me permettant de calculer la valeur de décryptage liées au signal sont incorrectes, et donc la valeur hexa de décryptage est erronée. Je reset le CPC !
3) je reconnais la clé, la valeur est bonne, j'envoie dans les registres la valeur attendue, et je décrypte le jeu.
Pour l'instant, on est coincé à l'étape 2.
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 20 Août 2007, 18:21 Message(s) : 5002
Code :
RAM:6C26 ; --------------------------------------------------------------------------- RAM:6C26 di RAM:6C27 ld bc, 0F610h ; B => I/O port address for PPI 8255 port C RAM:6C2A out (c), c RAM:6C2C ld bc, 0F500h ; B => I/O port address for PPI 8255 port B RAM:6C2F loc_6C2F: RAM:6C2F call _ReadTape_6C19 RAM:6C32 jr z, loc_6C2F RAM:6C34 ld d, 0 RAM:6C36 loc_6C36: RAM:6C36 ld e, 1Eh RAM:6C38 call _ReadTape_6C19 RAM:6C3B jr z, loc_6C2F RAM:6C3D ld a, 4 RAM:6C3F cp e RAM:6C40 jr c, loc_6C2F RAM:6C42 dec d RAM:6C43 jr nz, loc_6C36 RAM:6C45 RAM:6C45 loc_6C45: RAM:6C45 ld e, 0FFh RAM:6C47 call _ReadTape_6C19 RAM:6C4A jr nz, loc_6C45 RAM:6C4C RAM:6C4C loc_6C4C: RAM:6C4C ld hl, 26h RAM:6C4F ld (hl), 0 RAM:6C51 RAM:6C51 loc_6C51: RAM:6C51 ld e, 5 RAM:6C53 call _ReadTape_6C19 RAM:6C56 jr z, loc_6C51 RAM:6C58 loc_6C58: RAM:6C58 ld e, 32h RAM:6C5A call _ReadTape_6C19 RAM:6C5D jr z, loc_6C62 RAM:6C5F inc (hl) RAM:6C60 jr loc_6C58 RAM:6C62 ; ---------------------------------------------------------------------------
RAM:6C62 loc_6C62: RAM:6C62 ld a, (hl) ; xor byte --> a=(26h) RAM:6C63 cp 0Ah RAM:6C65 jr c, loc_6C4C
RAM:6C67 ei RAM:6C68 ld de, 40h ; debut decode RAM:6C6B ld bc, 6C18h ; len decode RAM:6C6E ld l, (hl) RAM:6C6F ex de, hl RAM:6C70 loc_6C70: RAM:6C70 ld a, (hl) RAM:6C71 xor e RAM:6C72 ld (hl), a RAM:6C73 inc hl RAM:6C74 dec bc RAM:6C75 ld a, b RAM:6C76 or c RAM:6C77 jr nz, loc_6C70 RAM:6C79 jp &16AA ; GOODBOY RAM:6C79 ; ---------------------------------------------------------------------------
RAM:6C19 _ReadTape_6C19: RAM:6C19 dec e RAM:6C1A ret z ; lit si e>0 RAM:6C1B in a, (c) RAM:6C1D xor c RAM:6C1E and 80h RAM:6C20 jr z, _ReadTape_6C19 RAM:6C22 ld a, c ROM:6C23 cpl ; Cette instruction permet d'inverser tous les bits du registre A. RAM:6C24 ld c, a RAM:6C25 ret
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 12 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