home *** CD-ROM | disk | FTP | other *** search
/ Supremacy 1 / Supremacy-1.iso / UTILS / !SERIAL / CRACKPRO.ZIP / CRAKPRO1.S < prev    next >
Text File  |  1985-11-20  |  4KB  |  192 lines

  1. * ProPack 1.02 cracker
  2. * for files such as the F-29 demo on Zero coverdisk...
  3. * (after you've got past the rob northen!!!)
  4.     opt    o+,x+
  5.  
  6. start    pea    (end-start)+256.w
  7.     pea    start-256(pc)
  8.     pea    $4a0000        reserve memory
  9.     trap    #1
  10.     lea    12(sp),sp
  11.  
  12.     lea    stack(pc),sp
  13.  
  14.     clr.l    -(sp)
  15.     move.w    #$20,-(sp)        supervisor
  16.     trap    #1
  17.  
  18.     cmp.b    #2,$44c.w
  19.     beq.s    hi
  20.     move.w    #1,-(sp)
  21.     pea    -1.w
  22.     move.l    (sp),-(sp)
  23.     move.w    #5,-(sp)
  24.     trap    #14
  25.     lea    12(sp),sp
  26.     move.l    #$7770000,$ffff8240.w
  27.     clr.l    $ffff8244.w
  28. hi    lea    input(pc),a6
  29.     bsr    print
  30.     lea    filename(pc),a6
  31.     bsr    print
  32.     lea    cursor(pc),a6
  33.     bsr    print
  34.  
  35.     pea    inputline(pc)
  36.     move.w    #$a,-(sp)        input filename
  37.     trap    #1
  38.     addq.l    #6,sp
  39.  
  40.     cmp.b    #'?',inputline+2
  41.     bne.s    notq
  42.     move.b    #'A',inputline+2
  43.     lea    help(pc),a6
  44.     bsr.s    print
  45.     bsr.s    get_key
  46.     bra.s    hi
  47.  
  48. notq    movem.l    $8.w,d0-d7
  49.     movem.l    d0-d7,tex
  50.  
  51.     pea    envcom(pc)
  52.     move.l    (sp),-(sp)
  53.     pea    filename(pc)
  54.     pea    $4b0003        load and set up
  55.     trap    #1
  56.     lea    16(sp),sp
  57.     tst.l    d0
  58.     bmi.s    error
  59.  
  60.     move.l    d0,a0        basepage addr
  61.  
  62.     lea    256+40(a0),a0
  63.     move.w    #$a300,(a0)        run with interrupts!
  64.     lea    270(a0),a0
  65.     move.l    a0,compare+6
  66.  
  67.     move.l    $114.w,oldtimerC+2    save old timer C
  68.     move.l    #mytimerC,$114.w    patch my timer C
  69.  
  70.     clr.l    -(sp)
  71.     move.l    d0,-(sp)
  72.     clr.l    -(sp)
  73.     pea    $4b0004        run the shit...
  74.     trap    #1
  75.     lea    16(sp),sp
  76.     clr.w    -(sp)
  77.     trap    #1
  78.  
  79. error    lea    text(pc),a6
  80.     bsr.s    print
  81.     bsr.s    get_key
  82.     clr.w    -(sp)
  83.     trap    #1
  84.  
  85. print    pea    (a6)
  86.     move.w    #9,-(sp)
  87.     trap    #1
  88.     addq.l    #6,sp
  89.     rts
  90. get_key    move.w    #7,-(sp)
  91.     trap    #1
  92.     addq.l    #2,sp
  93.     rts
  94.  
  95.  
  96.  
  97. mytimerC    eor.w    #$77,$ffff8240    muck up colors
  98.  
  99.     movem.l    d0-d7/a0-a6,-(sp)
  100. compare    cmp.l    #$41e8001c,$00000000    decrypted yet?
  101.     bne    notyet        no
  102.     move.l    compare+6(pc),a0
  103.     move.w    #$4e4a,(a0)
  104.     move.l    #trap10,$a8.w
  105. notyet    movem.l    (sp)+,d0-d7/a0-a6
  106. oldtimerC    jmp    0        do old timer C
  107.  
  108. trap10    move.l    oldtimerc+2(pc),$114.w
  109.     movem.l    tex(pc),d0-d7
  110.     movem.l    d0-d7,$8.w
  111.     pea    (a0)
  112.     lea    choice(pc),a6
  113.     bsr.s    print
  114. not1    bsr.s    get_key
  115.     cmp.b    #'2',d0
  116.     beq.s    return
  117.     cmp.b    #'1',d0
  118.     bne.s    not1
  119.     move.w    #$2300,sr
  120.     lea    input2(pc),a6
  121.     bsr.s    print
  122.     lea    filename(pc),a6
  123.     bsr    print
  124.     lea    cursor(pc),a6
  125.     bsr    print
  126.     pea    inputline(pc)
  127.     move.w    #$a,-(sp)        input filename
  128.     trap    #1
  129.     addq.l    #6,sp
  130.     clr.w    -(sp)
  131.     pea    filename(pc)
  132.     move.w    #$3c,-(sp)
  133.     trap    #1
  134.     addq.l    #8,sp
  135.     move.w    d0,d7
  136.     move.l    (sp)+,a0
  137.     move.l    a0,a1
  138.     lea    32(a1),a2
  139.     add.l    2(a0),a2
  140.     add.l    6(a0),a2
  141.     add.l    14(a0),a2
  142. findend    tst.b    (a2)+
  143.     bne.s    findend
  144.     move.l    a2,d0
  145.     move.l    a0,d1
  146.     sub.l    d1,d0
  147.     pea    (a0)
  148.     move.l    d0,-(sp)
  149.     move.w    d7,-(sp)
  150.     move.w    #$40,-(sp)
  151.     trap    #1
  152.     lea    12(sp),sp
  153.     move.w    d7,-(sp)
  154.     move.w    #$3e,-(sp)
  155.     trap    #1
  156.     addq.l    #4,sp
  157.     clr.w    -(sp)
  158.     trap    #1
  159.  
  160. return    move.w    #$a300,sr
  161.     rts
  162.  
  163.     data
  164.     ds.l    400
  165. stack    ds.l    1
  166. envcom    dc.w    0        null environment/command
  167.  
  168. text    dc.b    27,"E",7,"File not found. Hit it...",0
  169. help    dc.b    27,"E",27,"f","Crakpro 1.02 will depack programs that have been packed with ProPack 1.02;",13,10
  170.     dc.b    "this is the packer that is used on the F-29 Zero mission. ProPack will not",13,10
  171.     dc.b    "depack from within MonST, as it specifically checks for MonST's presence (try",13,10
  172.     dc.b    "it for a laugh - it just says FUCK YOU at PC when it crashes!). So run this",13,10
  173.     dc.b    "program and enter the name of the file you wish to depack. It will then be",13,10
  174.     dc.b    "depacked.",13,10
  175.     dc.b    "Then it will offer you the choice of either saving the depacked file or",13,10
  176.     dc.b    "dropping back to MonST (PC=start of depacked file) if you ran CrakPro from",13,10
  177.     dc.b    "within it.",13,10,10
  178.     dc.b    "All coding by The Alien... hit a key.",0
  179. choice    dc.b    27,"E",27,"f1...Save file",13,10,"2...Return to MonST (TRACE exception)",0
  180. input    dc.b    27,"E",27,"e","CrakPro 1.02 by The Alien, ",$bd," 1990.",13,10
  181.     dc.b    "Enter filename or ? for help.",13,10,10
  182.     dc.b    "Program to crack >",0
  183. input2    dc.b    27,"Y",35,32,"Save file as     >",0
  184. cursor    dc.b    27,"Y",35,50,27,"e",0
  185.  
  186. inputline    dc.b    128        max 128 chars
  187.     dc.b    8        8 given chars
  188. filename    dc.b    "A:\*.PRG"        default filename
  189.     bss
  190.     ds.b    120        128 chars buffer
  191. tex    ds.l    8
  192. end