Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.65 - CLIENT : 54.224.216.155

 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 

Bubble ghost IIgs (Accolade, 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: 2936
Localisation: Le Chesnay, France

MessagePosté le: Jeu 25 Fév 2016, 17:54    Sujet du message: Bubble ghost IIgs (Accolade, 1988) Répondre en citant

#787 - This is Bubble ghost, a French game by ERE Informatique, adapted to the IIgs by the young guys of Lyon when they were students. They built a cross-development platform on a Mac and they could generate Atari ST, Commodore Amiga and Apple IIgs version of Infogrames games easily. Sometimes, they had to rewrite the software to make it run smoothly on the IIgs (eg. Captain Blood). The Bubble ghost conversion is great and will be a member of our enhancement process as paths are hardcoded by default, stay tuned!

Protection type
Another... password protection. You boot the disk and then you are requested to tell which level is the screen that is displayed. You are supposed to have three times (why not 99 to let a chance to the owner of a copy to enter the right level?) and if you fail, the program goes into an infinite loop.

How to copy
Use ZZCopy of Photonix II to copy your original disk that you, then, store in a dry and safe place.

Reverse engineering
As with other compiled programs, we search for the displayed strings of the protection and go back to patient zero, the first call to the protection. For Bubble ghost:
- String "What level is this ?" is in segment 3 (arrays) at offset $3961
- Used by a routine of segment 5 (dial), offset $0
- Which is called by segment 4 (ghost) at offset $1166

A parameter is pushed on the stack before calling the protection, the value is then pulled from the stack but not used. Why? Because, in the protection check code, if we fail entering the level number, the protection goes into an infinite loop. The protection also checks that the level entered is the level chosen randomly and it does not return 0 or 1 for a valid or invalid answer, it just goes back.

How to crack
Launch Block.Warden and:
Code:

Prefix /BUBBLE
Follow file BUBBLE.SYS16
At offset $9BA2: 22 -> AF
Write the block back onto disk


The disk image is at http://www.brutaldeluxe.fr/crack/

Reboot and... enjoy,
LoGo
2/2016


Dernière édition par toinet le Jeu 25 Fév 2016, 17:57; é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: 2936
Localisation: Le Chesnay, France

MessagePosté le: Jeu 25 Fév 2016, 17:55    Sujet du message: Répondre en citant

And some code. From the string to patient zero

Code:

The protection string
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
03/3961: 5768617420                 ASC   'What level is this ? _'00           
03/3978: 506C617965                 ASC   'Player :  '00                       
03/3983: 02                         DB    $02                                   
03/3984: 00                         DB    $00                                   
03/3985: 02                         DB    $02                                   
03/3986: 00                         DB    $00                                   
03/3987: 02                         DB    $02                                   
03/3988: 00                         DB    $00                                   
03/3989: 02                         DB    $02                                   
03/398A: 00                         DB    $00                                   
03/398B: 02                         DB    $02                                   
03/398C: 00                         DB    $00                                   
03/398D: 02                         DB    $02                                   
03/398E: 00                         DB    $00                                   
03/398F: 01                         DB    $01                                   
03/3990: 00                         DB    $00                                   
03/3991: 00                         DB    $00                                   
03/3992: 00                         DB    $00                                   
03/3993: 00                         DB    $00                                   
03/3994: 00                         DB    $00                                   
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The entry point of the password protection
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
05/0000: 0B                         PHD                                         
05/0001: 3B                         TSC                                         
05/0002: 38                         SEC                                         
05/0003: E9F900                     SBC   #$00F9                               
05/0006: 5B                         TCD                                         
05/0007: 69EC00                     ADC   #$00EC                               
05/000A: 1B                         TCS                                         
05/000B: 64EE                       STZ   $EE             ; Nb of tries         
05/000D: 220D1901                   JSL   $01190D                               
05/0011: E6EE                       INC   $EE                                   
05/0013: A5EE                       LDA   $EE                                   
05/0015: C90300                     CMP   #$0003          ; The third try?     
05/0018: D003                       BNE   $001D                                 
05/001A: 82FF01                     BRL   $021C           ; Go infinite...     
05/001D: F45400                     PEA   $0054                                 
05/0020: F4AF00                     PEA   $00AF                                 
05/0023: A2043A2200                 Tool $3A04                                 
05/002A: 8DD500                     STA   $0200D5                               
05/002D: F40300                     PEA   ^$033961        ; What level...?     
05/0030: F46139                     PEA   $033961                               
...
05/0204: 18                         CLC                                         
05/0205: 22663401                   JSL   $013466                               
05/0209: 68                         PLA                                         
05/020A: 18                         CLC                                         
05/020B: 65F0                       ADC   $F0                                   
05/020D: 85F2                       STA   $F2                                   
05/020F: A5F2                       LDA   $F2             ; Right answer?       
05/0211: C5FF                       CMP   $FF                                   
05/0213: D004                       BNE   $0219                                 
05/0215: 8007                       BRA   $021E           ; Yes                 
05/0217: 8003                       BRA   $021C                                 
05/0219: 82F5FD                     BRL   $0011           ; No                 
05/021C: 80FE                       BRA   $021C           ; Infinite loop       
05/021E: A8                         TAY                   ; Now play...         
05/021F: 7B                         TDC                                         
05/0220: 18                         CLC                                         
05/0221: 69F900                     ADC   #$00F9                               
05/0224: 1B                         TCS                                         
05/0225: 98                         TYA                                         
05/0226: 2B                         PLD                                         
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The call of the protection
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
04/1152: 68                         PLA                                         
04/1153: 18                         CLC                                         
04/1154: 690100                     ADC   #$0001                               
04/1157: 8D7200                     STA   $020072                               
04/115A: 22142804                   JSL   $042814                               
04/115E: 22410B01                   JSL   $010B41                               
04/1162: AD7200                     LDA   $020072                               
04/1165: 48                         PHA                                         
04/1166: 22000005                   JSL   $050000         ; Call the protection
04/116A: 7A                         PLY                                         
04/116B: 9C0500                     STZ   $020005                               
04/116E: 7B                         TDC                                         
04/116F: 18                         CLC                                         
04/1170: 69FB00                     ADC   #$00FB                               
04/1173: 1B                         TCS                                         
04/1174: 2B                         PLD                                         
04/1175: 6B                         RTL                                         
04/1176: 0B                         PHD                                         
04/1177: 3B                         TSC                                         
04/1178: 38                         SEC                                         
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: 2936
Localisation: Le Chesnay, France

MessagePosté le: Jeu 25 Fév 2016, 17:56    Sujet du message: Répondre en citant

And the Block.Warden view.
We replace the 22 (JSL) with a AF (LDAL) and that's all.

Code:

Block: $017C (380)      Volume name: BUBBLE          Wednesday  25-Feb-16  4:48
Prefix: /BUBBLE/                                                               
Following: BUBBLE.SYS16, Type S16, Rel block 78, Byte $009BA2                   
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 100: 03 82 4C 00 22 00 00 00 F4 00 00 AD 00 00 48 22   ..L."...t..-..H"   
  b Z 110: 00 00 00 7A 7A A2 00 00 A9 D0 07 86 F6 85 F4 80   ...zz"..)P..v.t.   
B y Z 120: 19 22 00 00 00 A8 F0 0A A2 00 00 A9 01 00 86 F6   ."...(p."..)...v   
L   Z 130: 85 F4 A5 F4 D0 02 C6 F6 C6 F4 A6 F6 A5 F4 86 F8   .t%tP.FvFt&v%t.x   
O G Z 140: 05 F8 D0 DD 22 00 00 00 22 00 00 00 22 00 00 00   .xP]"..."..."...   
C l Z 150: A2 00 00 A9 88 90 86 F6 85 F4 82 90 FE 22 00 00   "..)...v.t..~"..   
K e Z 160: 00 A2 00 00 A8 10 01 CA DA 48 A2 04 87 22 00 00   ."..(..JZH".."..   
  n Z 170: E1 8D 00 00 AD 00 00 F0 2E 48 A2 04 86 22 00 00   a...-..p.H".."..   
W   Z 180: E1 8D 00 00 68 48 A9 21 00 38 22 00 00 00 68 18   a...hH)!.8"...h.   
A B Z 190: 69 01 00 8D 00 00 22 00 00 00 22 00 00 00 AD 00   i....."..."...-.   
R r Z 1A0: 00 48>22<00 00 00 7A 9C 00 00 7B 18 69 FB 00 1B   .H"...z...{.i{..   
D e Z 1B0: 2B 6B 0B 3B 38 E9 FB 00 5B 69 EB 00 1B 22 00 00   +k.;8i{.[ik.."..   
E d Z 1C0: 00 F4 22 01 F4 00 00 F4 00 00 22 00 00 00 7A 7A   .t".t..t.."...zz   
N o Z 1D0: 7A 85 EF D4 EF 22 00 00 00 7A F4 22 00 F4 00 00   z.oTo"...zt".t..   
  n Z 1E0: F4 00 00 22 00 00 00 7A 7A 7A 85 EF A5 EF 38 E9   t.."...zzz.o%o8i   
    Z 1F0: 00 00 70 03 49 00 80 30 03 82 76 00 64 ED 80 5E   ..p.I..0..v.dm.^   
                                                                               
Arrows move cursor, ESC for command mode, \ = flip, ^F = find (RTN to cancel), 
^S = search, ^X = cancel chg, TAB = toggle hex/ascii, A for hi bit.             

Block: $017C (380)      Volume name: BUBBLE          Wednesday  25-Feb-16  4:47
Prefix: /BUBBLE/                                                               
Following: BUBBLE.SYS16, Type S16, Rel block 78, Byte $009B00                   
                                                                               
119E: AD 00 00    LDA  $0000      -..   11BC: 1B          TCS             .     
11A1: 48          PHA             H     11BD: 22 00 00 00 JSL  $000000    "... 
11A2: 22 00 00 00 JSL  $000000    "...  11C1: F4 22 01    PEA  $0122      t".   
11A6: 7A          PLY             z     11C4: F4 00 00    PEA  $0000      t..   
11A7: 9C 00 00    STZ  $0000      ...   11C7: F4 00 00    PEA  $0000      t..   
11AA: 7B          TDC             {     11CA: 22 00 00 00 JSL  $000000    "... 
11AB: 18          CLC             .     11CE: 7A          PLY             z     
11AC: 69 FB       ADC  #$FB       i{    11CF: 7A          PLY             z     
11AE: 00          BRK             .     11D0: 7A          PLY             z     
11AF: 1B          TCS             .     11D1: 85 EF       STA  $EF        .o   
11B0: 2B          PLD             +     11D3: D4 EF       PEI  $EF        To   
11B1: 6B          RTL             k     11D5: 22 00 00 00 JSL  $000000    "... 
11B2: 0B          PHD             .     11D9: 7A          PLY             z     
11B3: 3B          TSC             ;     11DA: F4 22 00    PEA  $0022      t".   
11B4: 38          SEC             8     11DD: F4 00 00    PEA  $0000      t..   
11B5: E9 FB       SBC  #$FB       i{    11E0: F4 00 00    PEA  $0000      t..   
11B7: 00          BRK             .     11E3: 22 00 00 00 JSL  $000000    "... 
11B8: 5B          TCD             [     11E7: 7A          PLY             z     
11B9: 69 EB       ADC  #$EB       ik    11E8: 7A          PLY             z     
11BB: 00          BRK             .     11E9: 7A          PLY             z     
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