Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.1 - CLIENT : 54.92.182.0

 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 

Impossible Mission II IIgs (Epyx, 1988)

 
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: 2945
Localisation: Le Chesnay, France

MessagePosté le: Jeu 10 Mar 2016, 20:25    Sujet du message: Impossible Mission II IIgs (Epyx, 1988) Répondre en citant

#806 - WARNING: do not use my disk image because the disk I have is bad therefore the disk image is not reliable but the protection code was intact.

Elvin returns in a high rise duel to the death... Impossible Mission II requires strategic moves and sharp investigative sense to outsmart ELVIN and his band of destructive evil doers.

Protection type
The same and usual track length thing. Including a slight variation of the protection check, a call to a function that will set a flag depending on the presence of an original disk or a copy.

How to copy
Refer to my last N-1 IIgs cracks: use ZZCopy or Photonix II to copy your disk then store it in a dry and safe place, not like me...

Some sort of reverse engineering
As usual, with the Flaming Bird Disassembler, I searched for the string C9 D5 which I found in segment 2. Rewinding leads us to the entry point of the routine at $02/6988, called by $02/4AD8, called in segment 1 at $01/11F5.

Note the interesting routine at $01/18A5. It returns $1F50 to a routine at $01/2B8 which will set a 1 at $04/5990 (a flag) if we have a copy, or 0 if we have an original. By default, the value is 0. The routine gets the $1F50, substracts the track length. If the track length is of a copy, then we'll get $FFFF as a length and the check will set the 1.

So, we'll avoid calling the protection check and we'll force the zero, whatever the condition (note: there are no other calls, use of such variables)

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

Prefix /IM2
Follow file IM2.SYS16
At offset $30D: 01 -> 00
Write the block back
At offset $1239: 22 -> AF
Write the block back


The BAD disk image is 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: 2945
Localisation: Le Chesnay, France

MessagePosté le: Jeu 10 Mar 2016, 20:25    Sujet du message: Répondre en citant

And some code...

Code:


SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
02/6988: 8B                         PHB                   ; Entry point         
02/6989: 4B                         PHK                                         
02/698A: AB                         PLB                                         
02/698B: AF985904                   LDAL  $045998                               
02/698F: 48                         PHA                                         
02/6990: 22F56902                   JSL   $0269F5                               
02/6994: FA                         PLX                                         
02/6995: B03A                       BCS   $69D1                                 
02/6997: E230                       SEP   #$30                                 
02/6999: A220                       LDX   #$20                                 
02/699B: A001                       LDY   #$01                                 
02/699D: 20D769                     JSR   $69D7                                 
02/69A0: B002                       BCS   $69A4                                 
02/69A2: 8004                       BRA   $69A8                                 
02/69A4: A2FF                       LDX   #$FF                                 
02/69A6: A0FF                       LDY   #$FF                                 
02/69A8: C230                       REP   #$30                                 
02/69AA: 8A                         TXA                                         
02/69AB: 8FD85904                   STAL  $0459D8                               
02/69AF: 98                         TYA                                         
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

Where the C code calls the protection
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
02/4AD8: 0B                         PHD                   ; Call the protection
02/4AD9: 3B                         TSC                                         
02/4ADA: 38                         SEC                                         
02/4ADB: E9FB00                     SBC   #$00FB                               
02/4ADE: 5B                         TCD                                         
02/4ADF: 69F400                     ADC   #$00F4                               
02/4AE2: 1B                         TCS                                         
02/4AE3: 22886902                   JSL   $026988                               
02/4AE7: 7B                         TDC                                         
02/4AE8: 18                         CLC                                         
02/4AE9: 69FB00                     ADC   #$00FB                               
02/4AEC: 1B                         TCS                                         
02/4AED: 2B                         PLD                                         
02/4AEE: 6B                         RTL                                         
02/4AEF: 0B                         PHD                                         
02/4AF0: 3B                         TSC                                         
02/4AF1: 38                         SEC                                         
02/4AF2: E9FB00                     SBC   #$00FB                               
02/4AF5: 5B                         TCD                                         
02/4AF6: 69EC00                     ADC   #$00EC                               
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

Where the protection is called
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
01/11C5: 0B                         PHD                                         
01/11C6: 3B                         TSC                                         
01/11C7: 38                         SEC                                         
01/11C8: E9FB00                     SBC   #$00FB                               
01/11CB: 5B                         TCD                                         
01/11CC: 69EC00                     ADC   #$00EC                               
01/11CF: 1B                         TCS                                         
01/11D0: A201022200                 _TLStartUp                                 
01/11D7: B003                       BCS   $11DC                                 
01/11D9: A90000                     LDA   #$0000                               
01/11DC: 8FFB5804                   STAL  $0458FB                               
01/11E0: 48                         PHA                                         
01/11E1: A202022200                 _MMStartUp                                 
01/11E8: B003                       BCS   $11ED                                 
01/11EA: A90000                     LDA   #$0000                               
01/11ED: 8FFB5804                   STAL  $0458FB                               
01/11F1: 68                         PLA                                         
01/11F2: 8D9859                     STA   $045998                               
01/11F5: 22D84A02                   JSL   $024AD8         ; Protection please   
01/11F9: F41900                     PEA   $0019                                 
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The requested length...
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
01/18A5: 0B                         PHD                   ; Check length       
01/18A6: 3B                         TSC                                         
01/18A7: 38                         SEC                                         
01/18A8: E9FB00                     SBC   #$00FB                               
01/18AB: 5B                         TCD                                         
01/18AC: 69F400                     ADC   #$00F4                               
01/18AF: 1B                         TCS                                         
01/18B0: A9501F                     LDA   #$1F50          ; Are we around it?   
01/18B3: A8                         TAY                                         
01/18B4: 7B                         TDC                                         
01/18B5: 18                         CLC                                         
01/18B6: 69FB00                     ADC   #$00FB                               
01/18B9: 1B                         TCS                                         
01/18BA: 98                         TYA                                         
01/18BB: 2B                         PLD                                         
01/18BC: 6B                         RTL                                         
01/18BD: 0B                         PHD                                         
01/18BE: 3B                         TSC                                         
01/18BF: 38                         SEC                                         
01/18C0: E9FB00                     SBC   #$00FB                               
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The place where the length is checked
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
01/02B4: 8FFB5804                   STAL  $0458FB                               
01/02B8: 22A51801                   JSL   $0118A5         ; Get 1F50           
01/02BC: 38                         SEC                                         
01/02BD: EDD859                     SBC   $0459D8         ; -T$20 read         
01/02C0: 7003                       BVS   $02C5                                 
01/02C2: 490080                     EOR   #$8000                               
01/02C5: 1008                       BPL   $02CF                                 
01/02C7: A90100                     LDA   #$0001          ; Bad disk! Put a 1...
01/02CA: 8D9059                     STA   $045990                               
01/02CD: 8003                       BRA   $02D2                                 
01/02CF: 9C9059                     STZ   $045990         ; Good disk!
01/02D2: 22F41601                   JSL   $0116F4                               
01/02D6: 221BCA01                   JSL   $01CA1B                               
01/02DA: 22331001                   JSL   $011033                               
01/02DE: 22770103                   JSL   $030177                               
01/02E2: 22E83E01                   JSL   $013EE8                               
01/02E6: E220                       SEP   #$20                                 
01/02E8: 9C9C59                     STZ   $04599C                               
01/02EB: C220                       REP   #$20                                 
01/02ED: AEA55A                     LDX   $045AA5                               
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS


Dernière édition par toinet le Ven 11 Mar 2016, 9:14; édité 1 fois
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: 2945
Localisation: Le Chesnay, France

MessagePosté le: Jeu 10 Mar 2016, 20:26    Sujet du message: Répondre en citant

And the Block.Warden views, with a final S because there are two bytes to change.

Code:

Where to put the 0...
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
Block: $0009 (9)        Volume name: IM2             Wednesday  10-Mar-16  2:33
Prefix: /IM2/                                                                   
Following: IM2.SYS16, Type S16, Rel block 2, Byte $00030D                       
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 100: 00 38 ED D8 59 70 03 49 00 80 10 08 A9>01>00 8D   .8mXYp.I....)...   
  b Z 110: 90 59 80 03 9C 90 59 22 F4 16 00 22 1B CA 00 22   .Y....Y"t..".J."   
B y Z 120: 33 10 00 22 77 01 00 22 E8 3E 00 E2 20 9C 9C 59   3.."w.."h>.b ..Y   
L   Z 130: C2 20 AE A5 5A AD A3 5A 86 EC 85 EA F4 10 00 F4   B .%Z-#Z.l.jt..t   
O G Z 140: 00 00 7B 18 69 E8 00 48 22 35 DB 00 A5 E8 85 F4   ..{.ih.H"5[.%h.t   
C l Z 150: AD FB 58 C9 46 00 D0 03 82 90 00 A5 F4 38 E9 00   -{XIF.P....%t8i.   
K e Z 160: 00 70 03 49 00 80 30 03 82 80 00 48 D4 F4 22 87   .p.I..0....HTt".   
  n Z 170: CE 00 68 F4 00 00 A2 04 15 22 00 00 E1 B0 03 A9   N.ht..".."..a0.)   
W   Z 180: 00 00 8F FB 58 00 48 F4 FF FF F4 00 00 A2 06 15   ...{X.Htt.."..   
A B Z 190: 22 00 00 E1 B0 03 A9 00 00 8F FB 58 00 68 F4 00   "..a0.)...{X.ht.   
R r Z 1A0: 00 F4 C1 19 F4 0C 00 F4 0B 00 22 23 48 00 7A 7A   .tA.t..t.."#H.zz   
D e Z 1B0: 7A 7A 22 54 3E 00 85 F2 A5 F2 F0 02 80 02 80 F2   zz"T>..r%rp....r   
E d Z 1C0: A5 F2 C9 79 00 F0 07 A5 F2 C9 59 00 D0 0A A9 01   %rIy.p.%rIY.P.).   
N o Z 1D0: 00 E2 20 8D 9C 59 C2 20 F4 00 00 A2 04 15 22 00   .b ..YB t.."..".   
  n Z 1E0: 00 E1 B0 03 A9 00 00 8F FB 58 00 48 D4 F4 22 87   .a0.)...{X.HTt".   
    Z 1F0: CE 00 68 AD 9C 59 29 FF 00 C9 01 00 D0 04 22 41   N.h-.Y).I..P."A   

Where to put the AF...
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
Block: $0011 (17)       Volume name: IM2             Wednesday  10-Mar-16  2:34
Prefix: /IM2/                                                                   
Following: IM2.SYS16, Type S16, Rel block 10, Byte $00123A                     
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000: A8 7B 18 69 F5 00 1B 98 2B 6B 0B 3B 38 E9 FB 00   ({.iu...+k.;8i{.   
  b Z 010: 5B 69 EC 00 1B A2 01 02 22 00 00 E1 B0 03 A9 00   [il..".."..a0.).   
B y Z 020: 00 8F FB 58 00 48 A2 02 02 22 00 00 E1 B0 03 A9   ..{X.H".."..a0.)   
L   Z 030: 00 00 8F FB 58 00 68 8D 98 59>22<D8 4A 00 F4 19   ...{X.h..Y"XJ.t.   
O G Z 040: 00 F4 00 00 A2 01 0F 22 00 00 E1 B0 03 A9 00 00   .t..".."..a0.)..   
C l Z 050: 8F FB 58 00 A2 03 02 22 00 00 E1 B0 03 A9 00 00   .{X.".."..a0.)..   
K e Z 060: 8F FB 58 00 DA 48 F4 00 00 F4 00 06 AD 98 59 48   .{X.ZHt..t..-.YH   
  n Z 070: F4 05 C0 F4 00 00 F4 00 00 A2 02 09 22 00 00 E1   t.@t..t..".."..a   
W   Z 080: B0 03 A9 00 00 8F FB 58 00 68 FA 86 F4 85 F2 A0   0.)...{X.hz.t.r   
A B Z 090: 02 00 B7 F2 AA A7 F2 86 F0 85 EE A6 F0 A5 EE 48   ..7r*'r.p.n&p%nH   
R r Z 0A0: F4 00 00 F4 A0 00 AD 98 59 48 A2 04 02 22 00 00   t..t .-.YH".."..   
D e Z 0B0: E1 B0 03 A9 00 00 8F FB 58 00 A6 F0 A5 EE 18 69   a0.)...{X.&p%n.i   
E d Z 0C0: 00 03 48 8A 69 00 00 AA F4 14 00 F4 00 00 F4 40   ..H.i..*t..t..t@   
N o Z 0D0: 01 F4 00 00 F4 C8 00 AD 98 59 48 A2 06 02 22 00   .t..tH.-.YH"..".   
  n Z 0E0: 00 E1 B0 03 A9 00 00 8F FB 58 00 F4 E1 00 F4 00   .a0.)...{X.ta.t.   
    Z 0F0: 9E A2 04 0D 22 00 00 E1 B0 03 A9 00 00 8F FB 58   .".."..a0.)...{X   
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