Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.65 - CLIENT : 54.225.26.44

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Ancient land of Y's (Kyodai, 1989)

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 2946
Localisation: Le Chesnay, France

MessagePosté le: Ven 25 Mar 2016, 17:02    Sujet du message: Ancient land of Y's (Kyodai, 1989) Répondre en citant

#817 - By Kyodai, distributed by Broderbund - Ancien land of Y's... where action and fantasy come toegether! With breathtaking graphics, award-winning musical score, single key commands and... save feature. That's important for a RPG game, isn't it?

Protection type
The manual says that both disks can be copied but the program disk is mandatory for the game to be run. As both disks can be copied with no issues, that may mean that we have extra bits or a track length check. It is from '89, by Broderbund. Their 5.25" protections were powerful, less on the 3.5".

How to copy
Use ZZCopy or Photonix II to copy the two disks. Then, store them in a dry and safe place.

Some code analysis
We boot the /program disk. Very rapidly, the /data disk is required then a big file is loaded (listen to the "noise/sound" of the disk drive) then a white string over a black background is displayed "insert PROGRAM disk...". OK... Let's start the analysis by desassembling the program.
On the boot disk, there is a YSBOOT.SYS16 program file that is short and that directly quits to /data/ysgs, an exe file. Great. I invite you to get the name of the unique segment of the boot program...
We now load the ysgs file, list the segments. OK. We have a compiled program (C or Pascal, I did not analyze but I would say C) with an "arrays" segment. In that segment at $2B0, there's a string "Insert PROGRAM disk and press...". Good. It is used in segment 1 at $1056.
There, there is a call to $03/656F. And we discover a call to $64F1 and some code that we already know (A2 20 A0 01 for read track #$20 from the Electronic Arts protection). Track length is read and returned to the routine that stores the values. Then, the routine returns a pointer to the track lengths.
Now, that we are back in segment 1, the routine checks that the read values are in the usual range (see Range X in the comments later) and jump to $10E4 if OK or loop infinitely...

How to crack
Launch Block.Warden and...
Code:

Prefix /DATA
Follow file YSGS
At offset $101F: 22 -> AF
At offset $102C: 03 -> 00
Write the block back onto disk


The disk images are at http://www.brutaldeluxe.fr/crack/

Reboot and... enjoy,

LoGo
3/2016
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 2946
Localisation: Le Chesnay, France

MessagePosté le: Ven 25 Mar 2016, 17:02    Sujet du message: Répondre en citant

And some code

Code:

Some arrays
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
10/02B0: 496E736572                 ASC   'Insert PROGRAM disk and press I     
10/02D5: 2F50524F47                 ASC   '/PROGRAM/TITLE'00                   
10/02E4: 7469746C65                 ASC   'title.shf'00                         
10/02EE: 496E736572                 ASC   'Insert PROGRAM Disk and press I     
10/0313: 7469746C65                 ASC   'title.shf'00                         
10/031D: 6B796F6400                 ASC   'kyod'00                             
10/0322: 7072657300                 ASC   'pres'00                             
10/0327: 756E6C6900                 ASC   'unli'00                             
10/032C: 6C6F676F00                 ASC   'logo'00                             
10/0331: 636F707900                 ASC   'copy'00                             
10/0336: 0000                       BRK   $00                                   
10/0338: 0000                       BRK   $00                                   
10/033A: 0000                       BRK   $00                                   
10/033C: 0000                       BRK   $00                                   
10/033E: 0000                       BRK   $00                                   
10/0340: 0000                       BRK   $00                                   
10/0342: 0000                       BRK   $00                                   
10/0344: 0000                       BRK   $00                                   
10/0346: 0000                       BRK   $00                                   
10/0348: 0000                       BRK   $00                                   
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The protection check
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
03/64F1: 8B                         PHB                                         
03/64F2: 5A                         PHY                                         
03/64F3: 4B                         PHK                                         
03/64F4: AB                         PLB                                         
03/64F5: AFE11E11                   LDAL  $111EE1                               
03/64F9: 48                         PHA                                         
03/64FA: 22CC6503                   JSL   $0365CC         ; Get memory         
03/64FE: 68                         PLA                                         
03/64FF: 200D65                     JSR   $650D           ; Do prot             
03/6502: 48                         PHA                                         
03/6503: DA                         PHX                                         
03/6504: 225D6603                   JSL   $03665D         ; Release mem         
03/6508: FA                         PLX                                         
03/6509: 68                         PLA                                         
03/650A: 7A                         PLY                                         
03/650B: AB                         PLB                                         
03/650C: 6B                         RTL                                         
03/650D: A90000                     LDA   #$0000          ; Init               
03/6510: 8DCA65                     STA   $65CA                                 
03/6513: 8DC665                     STA   $65C6                                 
03/6516: 8DC865                     STA   $65C8                                 
03/6519: E230                       SEP   #$30                                 
03/651B: A220                       LDX   #$20            ; read 1st track     
03/651D: A001                       LDY   #$01                                 
03/651F: 204E65                     JSR   $654E                                 
03/6522: B013                       BCS   $6537                                 
03/6524: 8EC665                     STX   $65C6           ; save length         
03/6527: 8CC765                     STY   $65C7                                 
03/652A: A221                       LDX   #$21            ; read 2nd track     
03/652C: A001                       LDY   #$01                                 
03/652E: 204E65                     JSR   $654E                                 
03/6531: 8EC865                     STX   $65C8           ; save length         
03/6534: 8CC965                     STY   $65C9                                 
03/6537: C230                       REP   #$30                                 
03/6539: 900C                       BCC   $6547                                 
03/653B: ADCA65                     LDA   $65CA                                 
03/653E: 49FFFF                     EOR   #$FFFF                               
03/6541: 1A                         INC                                         
03/6542: A2FFFF                     LDX   #$FFFF          ; say Error           
03/6545: 8006                       BRA   $654D                                 
03/6547: A9C665                     LDA   #$65C6          ; say OK             
03/654A: A20300                     LDX   #^$65C6                               
03/654D: 60                         RTS                                         

03/654E: 5A                         PHY                                         
03/654F: DA                         PHX                                         
03/6550: F40300                     PEA   ^$6567                               
03/6553: F46765                     PEA   $6567                                 
03/6556: 22A06603                   JSL   $0366A0                               
03/655A: 8DCA65                     STA   $65CA                                 
03/655D: 68                         PLA                                         
03/655E: 68                         PLA                                         
03/655F: 68                         PLA                                         
03/6560: 68                         PLA                                         
03/6561: 68                         PLA                                         
03/6562: 68                         PLA                                         
03/6563: ADCA65                     LDA   $65CA                                 
03/6566: 60                         RTS                                         

03/6567: 50524F4752                 ASC   'PROGRAM'00     ; Volume name of checked disk

03/656F: E220                       SEP   #$20            ; Entry point
03/6571: 68                         PLA                                         
03/6572: 8FBB6503                   STAL  $0365BB                               
03/6576: C220                       REP   #$20                                 
03/6578: 68                         PLA                                         
03/6579: 8FBC6503                   STAL  $0365BC                               
03/657D: BA                         TSX                                         
03/657E: 8A                         TXA                                         
03/657F: 8FBE6503                   STAL  $0365BE                               
03/6583: 7B                         TDC                                         
03/6584: 8FC46503                   STAL  $0365C4                               
03/6588: AFE51E11                   LDAL  $111EE5                               
03/658C: 5B                         TCD                                         
03/658D: 22F16403                   JSL   $0364F1         ; Call prot
03/6591: 8FC26503                   STAL  $0365C2         ; save pointer
03/6595: 8A                         TXA                                         
03/6596: 8FC06503                   STAL  $0365C0         ; here also
03/659A: AFC46503                   LDAL  $0365C4                               
03/659E: 5B                         TCD                                         
03/659F: AFBE6503                   LDAL  $0365BE                               
03/65A3: AA                         TAX                                         
03/65A4: 9A                         TXS                                         
03/65A5: AFBC6503                   LDAL  $0365BC                               
03/65A9: 48                         PHA                                         
03/65AA: 8B                         PHB                                         
03/65AB: AFBB6503                   LDAL  $0365BB                               
03/65AF: 8301                       STA   $01,S                                 
03/65B1: AFC06503                   LDAL  $0365C0         ; get pointer
03/65B5: AA                         TAX                                         
03/65B6: AFC26503                   LDAL  $0365C2         ; here also
03/65BA: 6B                         RTL                                         

03/65BB: 00                         DB    $00                                   
03/65BC: 00                         DB    $00                                   
03/65BD: 00                         DB    $00                                   
03/65BE: 00                         DB    $00                                   
03/65BF: 00                         DB    $00                                   
03/65C0: 00                         DB    $00                                   
03/65C1: 00                         DB    $00                                   
03/65C2: 00                         DB    $00                                   
03/65C3: 00                         DB    $00                                   
03/65C4: 00                         DB    $00                                   
03/65C5: 00                         DB    $00                                   
03/65C6: 00                         DB    $00                                   
03/65C7: 00                         DB    $00                                   
03/65C8: 00                         DB    $00                                   
03/65C9: 00                         DB    $00                                   
03/65CA: 00                         DB    $00                                   
03/65CB: 00                         DB    $00                                   
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The calling point
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
01/1014: 0B                         PHD                   ; Entry point         
01/1015: 3B                         TSC                                         
01/1016: 38                         SEC                                         
01/1017: E9FB00                     SBC   #$00FB                               
01/101A: 5B                         TCD                                         
01/101B: 69CE00                     ADC   #$00CE                               
01/101E: 1B                         TCS                                         
01/101F: 226F6503                   JSL   $03656F         ; Call prot           
01/1023: 86D2                       STX   $D2                                   
01/1025: 85D0                       STA   $D0                                   
01/1027: 64E0                       STZ   $E0             ; First run
01/1029: A5E0                       LDA   $E0             ; Did we run the prot?
01/102B: F003                       BEQ   $1030           ; no...
01/102D: 82B400                     BRL   $10E4           ; yes, leave :-)
01/1030: 38                         SEC                   ; Check pointer       
01/1031: A5D0                       LDA   $D0                                   
01/1033: E90000                     SBC   #$0000                               
01/1036: D007                       BNE   $103F                                 
01/1038: A5D2                       LDA   $D2                                   
01/103A: E90000                     SBC   #$0000                               
01/103D: 8007                       BRA   $1046                                 
01/103F: A5D2                       LDA   $D2                                   
01/1041: E90000                     SBC   #$0000                               
01/1044: C202                       REP   #$02                                 
01/1046: 7003                       BVS   $104B                                 
01/1048: 490080                     EOR   #$8000                               
01/104B: 3022                       BMI   $106F                                 
01/104D: F40100                     PEA   $0001           ; no ptr, insert disk
01/1050: F46000                     PEA   $0060                                 
01/1053: F41000                     PEA   $0010                                 
01/1056: F41000                     PEA   ^$1002B0                             
01/1059: F4B002                     PEA   $1002B0                               
01/105C: 22B70D01                   JSL   $010DB7                               
01/1060: 7A                         PLY                                         
01/1061: 7A                         PLY                                         
01/1062: 7A                         PLY                                         
01/1063: 7A                         PLY                                         
01/1064: 7A                         PLY                                         
01/1065: 226F6503                   JSL   $03656F         ; Call prot           
01/1069: 86D2                       STX   $D2                                   
01/106B: 85D0                       STA   $D0                                   
01/106D: 80C1                       BRA   $1030                                 
01/106F: A6D2                       LDX   $D2             ; now check ranges   
01/1071: A5D0                       LDA   $D0                                   
01/1073: 86DE                       STX   $DE                                   
01/1075: 85DC                       STA   $DC                                   
01/1077: A6DE                       LDX   $DE                                   
01/1079: A5DC                       LDA   $DC                                   
01/107B: DA                         PHX                                         
01/107C: 48                         PHA                                         
01/107D: 18                         CLC                                         
01/107E: 690200                     ADC   #$0002                               
01/1081: 85DC                       STA   $DC                                   
01/1083: A5DE                       LDA   $DE                                   
01/1085: 9001                       BCC   $1088                                 
01/1087: 1A                         INC                                         
01/1088: 85DE                       STA   $DE                                   
01/108A: 68                         PLA                                         
01/108B: FA                         PLX                                         
01/108C: 85F6                       STA   $F6                                   
01/108E: 86F8                       STX   $F8                                   
01/1090: A7F6                       LDA   [$F6]                                 
01/1092: 85DA                       STA   $DA                                   
01/1094: A7DC                       LDA   [$DC]                                 
01/1096: 85D8                       STA   $D8                                   
01/1098: A5DA                       LDA   $DA                                   
01/109A: 38                         SEC                                         
01/109B: E96B20                     SBC   #$206B          ; Range 1             
01/109E: F037                       BEQ   $10D7                                 
01/10A0: 7003                       BVS   $10A5                                 
01/10A2: 490080                     EOR   #$8000                               
01/10A5: 1030                       BPL   $10D7                                 
01/10A7: A5DA                       LDA   $DA                                   
01/10A9: 38                         SEC                                         
01/10AA: E90321                     SBC   #$2103          ; Range 2             
01/10AD: 7003                       BVS   $10B2                                 
01/10AF: 490080                     EOR   #$8000                               
01/10B2: 3023                       BMI   $10D7                                 
01/10B4: A5D8                       LDA   $D8                                   
01/10B6: 38                         SEC                                         
01/10B7: E9AF1D                     SBC   #$1DAF          ; Range 3             
01/10BA: F01B                       BEQ   $10D7                                 
01/10BC: 7003                       BVS   $10C1                                 
01/10BE: 490080                     EOR   #$8000                               
01/10C1: 1014                       BPL   $10D7                                 
01/10C3: A5D8                       LDA   $D8                                   
01/10C5: 38                         SEC                                         
01/10C6: E9791E                     SBC   #$1E79          ; Range 4             
01/10C9: 7003                       BVS   $10CE                                 
01/10CB: 490080                     EOR   #$8000                               
01/10CE: 3007                       BMI   $10D7                                 
01/10D0: A90100                     LDA   #$0001          ; We're good         
01/10D3: 85E0                       STA   $E0                                   
01/10D5: 800A                       BRA   $10E1           ; Exit               
01/10D7: A2FFFF                     LDX   #$FFFF          ; Error!             
01/10DA: A9FFFF                     LDA   #$FFFF                               
01/10DD: 86D2                       STX   $D2                                   
01/10DF: 85D0                       STA   $D0                                   
01/10E1: 8245FF                     BRL   $1029           ; Loop               

01/10E4: F41000                     PEA   ^$1002D5        ; Load Title         
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 2946
Localisation: Le Chesnay, France

MessagePosté le: Ven 25 Mar 2016, 17:03    Sujet du message: Répondre en citant

And the Block.Warden view

Code:

Block: $03BF (959)      Volume name: DATA            Thursday   25-Mar-16  2:47
Prefix: /DATA/                                                                 
Following: YSGS, Type $B5, Rel block 9, Byte $001064                           
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000: 7A 7A 7A 7B 18 69 F3 00 1B 2B 6B 0B 3B 38 E9 F3   zzz{.is..+k.;8is   
  b Z 010: 00 5B 69 EC 00 1B D4 FF D4 FD D4 FB D4 F9 22 0E   .[il..TT}T{Ty".   
B y Z 020: 26 00 7A 7A 7A 7A 7B 18 69 F3 00 1B 2B 6B 0B 3B   &.zzzz{.is..+k.;   
L   Z 030: 38 E9 EF 00 5B 69 E8 00 1B D4 FF D4 FD D4 FB D4   8io.[ih..TT}T{T   
O G Z 040: F9 D4 F7 D4 F5 22 A0 26 00 A8 3B 18 69 0C 00 1B   yTwTu" &.(;.i...   
C l Z 050: 98 7B 18 69 EF 00 1B 2B 6B 0B 3B 38 E9 FB 00 5B   .{.io..+k.;8i{.[   
K e Z 060: 69 CE 00 1B>22<6F 65 00 86 D2 85 D0 64 E0 A5 E0   iN.."oe..R.Pd`%`   
  n Z 070: F0>03<82 B4 00 38 A5 D0 E9 00 00 D0 07 A5 D2 E9   p..4.8%Pi..P.%Ri   
W   Z 080: 00 00 80 07 A5 D2 E9 00 00 C2 02 70 03 49 00 80   ....%Ri..B.p.I..   
A B Z 090: 30 22 F4 01 00 F4 60 00 F4 10 00 F4 00 00 F4 B0   0"t..t`.t..t..t0   
R r Z 0A0: 02 22 B7 0D 00 7A 7A 7A 7A 7A 22 6F 65 00 86 D2   ."7..zzzzz"oe..R   
D e Z 0B0: 85 D0 80 C1 A6 D2 A5 D0 86 DE 85 DC A6 DE A5 DC   .P.A&R%P.^.\&^%\   
E d Z 0C0: DA 48 18 69 02 00 85 DC A5 DE 90 01 1A 85 DE 68   ZH.i...\%^....^h   
N o Z 0D0: FA 85 F6 86 F8 A7 F6 85 DA A7 DC 85 D8 A5 DA 38   z.v.x'v.Z'\.X%Z8   
  n Z 0E0: E9 6B 20 F0 37 70 03 49 00 80 10 30 A5 DA 38 E9   ik p7p.I...0%Z8i   
    Z 0F0: 03 21 70 03 49 00 80 30 23 A5 D8 38 E9 AF 1D F0   .!p.I..0#%X8i/.p   
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 2946
Localisation: Le Chesnay, France

MessagePosté le: Ven 25 Mar 2016, 17:03    Sujet du message: Répondre en citant

I have not found any other references to the track length nor other calls to the protection in the code.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster 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 voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com