Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.1 - CLIENT : 54.162.227.37

 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 

Top Draw v1.00a IIgs (StyleWare, 1987)

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

MessagePosté le: Sam 27 Fév 2016, 16:15    Sujet du message: Top Draw v1.00a IIgs (StyleWare, 1987) Répondre en citant

#788 - The premier draw program for the Apple IIgs(tm)! - Get serious graphics tools, easy to use pull-down menus...

Protection type
I promise I did not do that on purpose but we face the same early on-disk protection that we have already encountered with Electronic Arts, Activision and other publishers. Go read tracks, check length and if not in the right range, ask infinitely for the original disk (but you can install the software on a HDD, the original disk would act as a key-disk).

How to copy
Use ZZCopy or Photonix II and then store your original disk in a dry and safe place.

Engineering reverse sort-of some
For once, we face an assembly program (yeah) not a compiled one. The string "Please insert the original TopDraw..." is located in segment 2, offset $45AB. Let's do the reverse path...
- The string is used at 2/443A. It is displayed if none of the online block devices match the original disk.
- The caller is at 2/4416.
- It is called by segment 1, offset $E409 and...
- Called if and only if the flag at $BBB is <>0.
By default, the flag is set to 1. After checking all the segments, it appears that $BBB is not used nor checked nor initialized by any other parts of the program (this is similar to the protection which is called once)
So, what we will do is change the 1 to 0.

How to crack
Launch Block.Warden
Code:

Prefix /Styleware.TD
Follow file TOPDRAW
At offset $C00: 01 -> 00

Write the block back onto disk.
Don't forget OMF segments have a header. So $BBB + $45 bytes of header length = $C00

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

Reboot and... enjoy,

LoGo
2/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: 2928
Localisation: Le Chesnay, France

MessagePosté le: Sam 27 Fév 2016, 16:17    Sujet du message: Répondre en citant

Some code for the protection

Code:

The string "Please insert the original..."
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
02/4590: 0000                       BRK   $00                                   
02/4592: 0000                       BRK   $00                                   
02/4594: 0000                       BRK   $00                                   
02/4596: 0000                       BRK   $00                                   
02/4598: 00                         DB    $00                                   
02/4599: 15450200                   ADRL  $00024515       ;  device name       
02/459D: 19450200                   ADRL  $00024519       ;  volume name       
02/45A1: 00000000                   ADRL  $00000000       ;  total blocks       
02/45A5: 00000000                   ADRL  $00000000       ;  free blocks       
02/45A9: 0000                       DW    $0000           ;  file system       
02/45AB: 41506C6561                 STR   'Please insert the original TopI     
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The protection routine and its check
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
02/4416: 8B                         PHB                   ; Entry point         
02/4417: 4B                         PHK                                         
02/4418: AB                         PLB                                         
02/4419: AF670C01                   LDAL  $010C67                               
02/441D: 48                         PHA                                         
02/441E: 225E5800                   JSL   $02585E                               
02/4422: 68                         PLA                                         
02/4423: 22A800E1                   JSL   GSOS                                 
02/4427: 2100                       DW    $0021           ; GET_LAST_DEV       
02/4429: 13450200                   ADRL  $00024513                             
02/442D: 205F44                     JSR   $445F           ; Check disk         
02/4430: EE0F45                     INC   $450F                                 
02/4433: AD1145                     LDA   $4511           ; Loop if non zero   
02/4436: D00F                       BNE   $4447                                 
02/4438: AB                         PLB                                         
02/4439: 6B                         RTL                                         
02/443A: F40200                     PEA   ^$45AB          ; Please insert...   
02/443D: F4AB45                     PEA   $45AB                                 
02/4440: 22157000                   JSL   $027015                               
02/4444: 9C1345                     STZ   $4513           ; Loop through device
02/4447: EE1345                     INC   $4513                                 
02/444A: 205F44                     JSR   $445F                                 
02/444D: 9005                       BCC   $4454                                 
02/444F: C91100                     CMP   #$0011                               
02/4452: F0E6                       BEQ   $443A                                 
02/4454: AD1145                     LDA   $4511                                 
02/4457: D0EE                       BNE   $4447                                 
02/4459: 22025900                   JSL   $025902                               
02/445D: AB                         PLB                                         
02/445E: 6B                         RTL                                         
02/445F: E230                       SEP   #$30                                 
02/4461: AD1345                     LDA   $4513                                 
02/4464: 18                         CLC                                         
02/4465: 6930                       ADC   #$30                                 
02/4467: 8D1845                     STA   $4518                                 
02/446A: C230                       REP   #$30                                 
02/446C: 22A800E1                   JSL   GSOS                                 
02/4470: 0800                       DW    $0008           ; Volume             
02/4472: 99450200                   ADRL  $00024599                             
02/4476: 9001                       BCC   $4479                                 
02/4478: 60                         RTS                                         
02/4479: ADA345                     LDA   $45A3                                 
02/447C: F007                       BEQ   $4485                                 
02/447E: AD0F45                     LDA   $450F                                 
02/4481: 8D1145                     STA   $4511                                 
02/4484: 60                         RTS                                         
02/4485: ADA145                     LDA   $45A1                                 
02/4488: C90010                     CMP   #$1000                               
02/448B: B0F1                       BCS   $447E                                 
02/448D: AD1945                     LDA   $4519                                 
02/4490: 29FF00                     AND   #$00FF                               
02/4493: 18                         CLC                                         
02/4494: 691945                     ADC   #$4519                               
02/4497: 1A                         INC                                         
02/4498: 8500                       STA   $00                                   
02/449A: A90200                     LDA   #^$4519                               
02/449D: 8502                       STA   $02                                   
02/449F: A90000                     LDA   #$0000                               
02/44A2: 8700                       STA   [$00]                                 
02/44A4: E230                       SEP   #$30                                 
02/44A6: A220                       LDX   #$20            ; First read         
02/44A8: A001                       LDY   #$01                                 
02/44AA: 5A                         PHY                                         
02/44AB: DA                         PHX                                         
02/44AC: F40200                     PEA   ^$451B                               
02/44AF: F41B45                     PEA   $451B                                 
02/44B2: 221F5900                   JSL   $02591F                               
02/44B6: 8D0D45                     STA   $450D           ; Save length         
02/44B9: 8E0B45                     STX   $450B                                 
02/44BC: 8C0C45                     STY   $450C                                 
02/44BF: 68                         PLA                                         
02/44C0: 68                         PLA                                         
02/44C1: 68                         PLA                                         
02/44C2: 68                         PLA                                         
02/44C3: 68                         PLA                                         
02/44C4: 68                         PLA                                         
02/44C5: A221                       LDX   #$21            ; Second read         
02/44C7: A001                       LDY   #$01                                 
02/44C9: 5A                         PHY                                         
02/44CA: DA                         PHX                                         
02/44CB: F40200                     PEA   ^$451B                               
02/44CE: F41B45                     PEA   $451B                                 
02/44D1: 221F5900                   JSL   $02591F                               
02/44D5: 8D0E45                     STA   $450E           ; Save length         
02/44D8: 8E0945                     STX   $4509                                 
02/44DB: 8C0A45                     STY   $450A                                 
02/44DE: 68                         PLA                                         
02/44DF: 68                         PLA                                         
02/44E0: 68                         PLA                                         
02/44E1: 68                         PLA                                         
02/44E2: 68                         PLA                                         
02/44E3: 68                         PLA                                         
02/44E4: C230                       REP   #$30            ; Compare them       
02/44E6: AD0D45                     LDA   $450D                                 
02/44E9: D01D                       BNE   $4508                                 
02/44EB: AD0945                     LDA   $4509                                 
02/44EE: C9B01D                     CMP   #$1DB0                               
02/44F1: 3015                       BMI   $4508                                 
02/44F3: C9791E                     CMP   #$1E79                               
02/44F6: 1010                       BPL   $4508                                 
02/44F8: AD0B45                     LDA   $450B                                 
02/44FB: C9401F                     CMP   #$1F40                               
02/44FE: 3008                       BMI   $4508                                 
02/4500: C90920                     CMP   #$2009                               
02/4503: 1003                       BPL   $4508                                 
02/4505: 9C1145                     STZ   $4511           ; Say we're good     
02/4508: 60                         RTS                                         
02/4509: 0000                       DW    $0000                                 
02/450B: 0000                       DW    $0000                                 
02/450D: 0000                       DW    $0000                                 
02/450F: 0000                       DW    $0000                                 
02/4511: 0100                       DW    $0001           ; Result             
02/4513: 0000                       DW    $0000           ;  device num         
02/4515: 032E4423                   STR   '.D#'                                 
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

This is where the protection is called
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
01/E404: ADBB0B                     LDA   $0BBB                                 
01/E407: F004                       BEQ   $E40D                                 
01/E409: 22164402                   JSL   $024416         ; Call protection     
01/E40D: 18                         CLC                                         
01/E40E: 60                         RTS                                         
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The flag at $BBB. 0 means skip protection. By default, it is 1
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
01/0B83: 8F503402                   STAL  $023450                               
01/0B87: A90000                     LDA   #$0000                               
01/0B8A: 8F523402                   STAL  $023452                               
01/0B8E: 20EA1B                     JSR   $1BEA                                 
01/0B91: 68                         PLA                                         
01/0B92: 20FFB7                     JSR   $B7FF                                 
01/0B95: AF513402                   LDAL  $023451                               
01/0B99: 29FF00                     AND   #$00FF                               
01/0B9C: C301                       CMP   $01,S                                 
01/0B9E: F010                       BEQ   $0BB0                                 
01/0BA0: AF513402                   LDAL  $023451                               
01/0BA4: 2900FF                     AND   #$FF00                               
01/0BA7: 0301                       ORA   $01,S                                 
01/0BA9: 8F513402                   STAL  $023451                               
01/0BAD: 20AF1B                     JSR   $1BAF                                 
01/0BB0: 68                         PLA                                         
01/0BB1: A2041B2200                 Tool $1B04                                 
01/0BB8: 60                         RTS                                         
01/0BB9: 0000                       DW    $0000                                 
01/0BBB: 0100                       DW    $0001           ; 0: skip protection!
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: 2928
Localisation: Le Chesnay, France

MessagePosté le: Sam 27 Fév 2016, 16:18    Sujet du message: Répondre en citant

And the Block.Warden view. Change the 1 at file offset $C00 with a 0 and you are done.

Code:

Block: $02D3 (723)      Volume name: STYLEWARE.TD    Friday     27-Feb-16  3:28
Prefix: /STYLEWARE.TD/                                                         
Following: TOPDRAW, Type S16, Rel block 7, Byte $000C00                         
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000:>01<00 00 00 01 00 02 00 04 00 04 00 50 00 50 00   ............P.P.   
  b Z 010: 00 00 01 00 01 00 14 00 14 00 01 00 02 00 04 00   ................   
B y Z 020: 04 00 50 00 50 00 00 00 00 00 00 00 00 00 00 00   ..P.P...........   
L   Z 030: 00 00 00 00 00 00 00 00 00 00 10 00 04 00 00 01   ................   
O G Z 040: 05 00 00 01 06 00 00 01 0A 00 00 01 0B 00 00 01   ................   
C l Z 050: 0E 00 00 01 0F 00 00 01 10 00 00 01 12 00 00 01   ................   
K e Z 060: 13 00 00 01 14 00 00 01 15 00 00 01 16 00 00 01   ................   
  n Z 070: 17 00 00 01 1B 00 00 01 1C 00 00 01 00 00 00 00   ................   
W   Z 080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
A B Z 090: 3C 00 00 00 01 F1 98 00 00 00 F2 75 0F 00 00 0F   <....q....ru....   
R r Z 0A0: 77 07 F0 00 0F 00 08 08 80 0F A0 00 8F 00 33 03   w.p....... ...3.   
D e Z 0B0: 48 0F 00 0C F0 0F 0F 0F FF 00 FF 0F FA 68 8D A0   H...p.....zh.   
E d Z 0C0: 0E 68 8D A2 0E DA F4 00 00 F4 94 0E AD A2 0E 48   .h.".Zt..t..-".H   
N o Z 0D0: AD A0 0E 48 20 84 77 AD 94 0E 8D DF 0C AD 96 0E   - .H .w-..._.-..   
  n Z 0E0: 8D E1 0C 20 1F 9C AD 98 0E 38 ED 94 0E 20 C7 9E   .a. ..-..8m.. G.   
    Z 0F0: AE DF 0C 8E 94 0E 18 6D 94 0E 8D 98 0E AD 9A 0E   ._.....m.....-..   
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