atarionline.pl Zabezpieczenie przed listingiem - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthorLex
    • CommentTime8 Oct 2009
     
    Na początku chciałem sie przywitać, jako że to mój pierwszy post na tym forum :) Stronę śledzę już od dosyć dawna ale dopiero teraz się zarejestrowałem.

    No, ale do rzeczy. Kiedyś, bardzo dawno temu, napisałem w Atari Basicu grę, którą potem rozsyłałem do różnych wydawnictw (np. L.K. Avalon) mając nadzieję że może się nią zainteresują. Gra została oceniona generalnie pozytywnie jednak plany jej wydania zostały odrzucone ze względu na.. hmm.. jej "małe skomplikowanie", czy coś podobnego - już nie pamiętam. ;)

    Jakiś czas temu wpadłem na pomysł by ową grę może sobie przenieść na inny język (generalnie myślałem np. o javie by móc sobie w nią pograć na komórce). Problem zaczął się gdy zacząłem szukać zapisanego listingu. Owszem znalazłem plik ale w formie "zabezpieczonej przed listingiem", jaką wtedy rozsyłałem do wydawnictw. Korzystałem wtedy z metody opisywanej szeroko w którymś czasopiśmie. Program dawał się wczytać ale potem w momencie napisania jakiejkolwiek komendy (np. LIST) komputer się zawieszał.

    Moje pytanie brzmi: czy jest obecnie jakaś metoda by taki listing odzyskać, czy też: odwrócić to zabezpieczenie?
    • 2:
       
      CommentAuthorKaz
    • CommentTime8 Oct 2009
     
    Witamy!

    Fajna historia. Mam oczywiscie pytanie dodatkowe: czy jak uda Ci sie odzyskac gre to zaprezentujesz ja takze w werji Atari?

    Jezeli chodzi o zabezpieczenie - to na wszystko jest sposob. Podeslij pliczek, a juz odpowiedni ludzie zrobia z nim co trzeba :). Mozesz zawiesic plik na forum albo podeslac do mnie na maila, jesli sprawa ma byc na razie utajniona.
    • 3: CommentAuthorLex
    • CommentTime8 Oct 2009 zmieniony
     
    Na początek co do pytania dodatkowego: wtedy, z racji ogolnej sytuacji praw autorskich jaka miała miejsce w Polsce, raczej na to nie zwracałem uwagi, ale teraz myślę że prezentacja publiczna gry raczej nie powinna się odbyć bez zgody, w moim mniemaniu, jej pośredniego współautora, jakim była osoba w/g której pomysłu owa gra powstała, p. Jacek Ciesielski (tak, ten od Dreszcza, Goblina i innych gier). Zresztą p. Jacek Ciesielski inspirował mnie dość często. ;)

    Pewnym ewentualnym utrudnieniem na pewno też bedzie fakt iż.. hmm... program jest dość niestandardardowo "zapisany". Całość powstała z przeznaczeniem na kasetę jako że nigdy w mojej "karierze atarowca" nie dorobiłem się i nie miałem stacji dysków. Zapisany był w systemie Turbo 2000. Dodatkowo zawierał całą masę loaderów i plików pośrednich, ktore wczytywały i scalały elementy programu z róznych edytorów w jakich pracowałem - grafikę (chyba Koala Painter?), muzykę (chyba CMC?) itp. Tylko dzieki jakiemuś programikowi znalezionemu w sieci udało mi się wiekszość tych plików odczytać z kasety przy pomocy walkmana dołączonego do karty dzwiekowej PC-ta. :P

    Co do reszty: "znalazłem plik" już jakiś czas temu wiec musze ponownie odszukać CD na ktorym został zarchiwizowany. :D
  1.  
    There are two ways to protect your program from being listed:

    1. Poke 155's into the variable name table at 131 and 132. This changes all your variable names into RETURN's.

    2. Add this line to the end of your program and then do GOTO 32767:

    32767 POKE PEEK(138)+PEEK(139)*256+2,O:SAVE "D:RUNONLY":NEW

    This is likely what was used in your program. You would probably need means to detokenize your program. There is a utility below which may help:

    ->link<-
    • 5: CommentAuthorLex
    • CommentTime9 Oct 2009
     
    Thanks for help, Synthpopalooza :) This is the method I was using, for sure.

    I have additional question: in the link you mentioned, last post is about "using decent editor to give the variables some usable names" - do you know such editor (PC/Windows) I could use? So far, I found Memo Pad but this program can only read/display content of BAS files, editing them is not possible.
  2.  
    The thread I linked to also has a perl script which should take your .BAS file and turn it into a text file which you can edit with any text editor.
    • 7: CommentAuthorLex
    • CommentTime9 Oct 2009 zmieniony
     
    Hmm... I've never used Perl so I didnt try that script. Now it seems I need some kind of perl.exe o.0

    Is there any single, command line use-only-when-you-need small file or do I need to install "full pack" like this one? ->link<- First option would be preferred by me :P
  3.  
    Well,
    how about some A8 tools to de-protect Atari Basic files ?!? Afaik, there is no method to make a Basic file 100% protected against listing it *from within Basic*. Think you need some Assembler routines to do so. At least I was able to make every protected pure Atari Basic file (without ML header or extra ML routines in front / at the end of it) listable again with one of the Basic de-protectors, like:

    - Abbuc Basic Lister (Lister.BAS)
    - The Repair Station (Repair.COM)
    - Basic Lister (Baslist.COM)

    While the first program only de-protects Basic files that had been protected with some Peek...Poke in the last line (usually 32767), the other programs de-protect many other list protections. Please note, that the Basic Lister will save a de-protected file in the List"D:filename" format, so you have to use Enter"D:filename" to load it in again. The Repair Station uses the same filename for the de-protected file but with the extender .FIX

    There is also some nice protection that enables you to list a Basic file, but you cannot make any changes to it, because it uses a line width of less than 38 chars (say 10 chars) and thus every Basic line-number is longer than the usual three lines which makes editing / changing impossible. Well, this is also a Basic protection which can be solved with the Basic Lister...

    -Andreas Koch.
    • 9: CommentAuthorLex
    • CommentTime10 Oct 2009 zmieniony
     
    Thank you, thank you, thank you! :D

    I've just tried the file you attached and it worked! :D
    Of course, I had some problems with it as I used Atari some time ago and never had "real" disk drive. Also first program I tried (in Basic one) did not seem to work for me. But the second one I tried (last one listed) managed to do listing of my program to disc.

    Now I need to find out if all files works together - I need to play the game for some time to check if there are no errors during gameplay - It already starts OK but could be some errors later.

    BTW: What times that I needed to hack my own game, lol o.0



    EDIT: I'm looking at BASIC code now and I think I will try to recover variables' original names. And yes, I found that I can copy listing to notepad using "P:" but (how) will I be able to put it back "into Atari"? Also, are there some dedicated PC editors for Atari BAS files? Would be nice to have one. :)
  4.  
    Actually, you can save the notepad listing, load the same file into memopad, and there is a function to convert CR/LF from CHR$(14) ascii to CHR$(155) atascii in memopad ... then save the text file again and you should be able to ENTER it under the emulator in BASIC.
    • 11: CommentAuthorLex
    • CommentTime10 Oct 2009 zmieniony
     
    Oh, that's how it works, thanks :)

    Still, it's a pity that notepad don't have build-in support to display & easily enter any characters beside standard ones (for example: inverted characters). :(