Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Aus P-Code Basic-Code wiederherstellen?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
FloSoft



Anmeldungsdatum: 22.04.2005
Beiträge: 3

BeitragVerfasst am: 22.04.2005, 12:04    Titel: Aus P-Code Basic-Code wiederherstellen? Antworten mit Zitat

Hallo,
kennt von euch jemand ein Programm mit dem man aus der "kompilierten" QBasic3.5 Exe wieder Basiccode erzeugen kann? Der Debasic-Decompiler funktioniert zwar, nur würde mich dieser knapp 700 Euro kosten (hab eine Exe kostenlos decompiliert gekriegt, als beispiel)

Der Code den der 1.0x Compiler damals generiert hat ist ja nur P-Code, also theoretisch umkehrbar (bis auf diverse Konstrukte/Layout natürlich, aber das lässt sich dann ja rekonstruieren)

Grüße
Euer Neuankömmling FloSoft
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 22.04.2005, 15:50    Titel: Antworten mit Zitat

Ich wusste gar ned, dass so was überhaupt möglich is. Laut QBMonFAQ gehts nämlich überhaupt ned.
Ich habe schon Disassembler gesehen, aber von ASM zu QB ist es ein weiter weg...
Übrigens halte ich einen solchen Decompiler auch rechtlich für nicht ganz unbedenklich...

Übrigens: Du solltest von 3.5 auf 4.5 umsteigen (downloadbar unter www.qbasic.de => Donwloads => Compiler), oder war das nur ein Tippfehler zwinkern ?
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 22.04.2005, 17:18    Titel: Antworten mit Zitat

Dusky_Joe hat Folgendes geschrieben:
Ich wusste gar ned, dass so was überhaupt möglich is. Laut QBMonFAQ gehts nämlich überhaupt ned.
Ich habe schon Disassembler gesehen, aber von ASM zu QB ist es ein weiter weg...
Übrigens halte ich einen solchen Decompiler auch rechtlich für nicht ganz unbedenklich...

Übrigens: Du solltest von 3.5 auf 4.5 umsteigen (downloadbar unter www.qbasic.de => Donwloads => Compiler), oder war das nur ein Tippfehler zwinkern ?


Denke auch das nicht möglcih ist.
Das Programm was er meint "übersetzt" wahrscheinlich nur den Asm Code in Basic zwinkern . Rechtlich gesehen naja zwinkern
Wens nicht anders geht (was ich vermute) zieh dir das 700€ Prog ausm Netz peinlich auch wen ich sowas eigentlich ablehene.

/Edit: 700€ für ein Programm finde ich naja mit dem Kopf durch die Mauer wollen , da kostet ja sogar die gesamte Office Reihe + 5 Updates weniger durchgeknallt
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
FloSoft



Anmeldungsdatum: 22.04.2005
Beiträge: 3

BeitragVerfasst am: 22.04.2005, 19:17    Titel: Antworten mit Zitat

Ich meinte schon 3.5, das Programm wurde damit geschrieben und dann mit einem qbasic compiler 1.0x kompiliert, darum ist das so ziemlich möglich den p-code (also kein "maschinencode" sondern "vorinterpretiertercode") deshalb ists auch scheinbar möglich. Kann schon sein das der das programm einfach disassembliert und dann basic code draus schreibt, schaut aber nicht so aus, hier mal der rohoutput des programms das er mir decompiliert hat (soweit ich die paar bugs die sich einschleichen behoben hat hat man wirklich brauchbaren basic code erhalten!

Code:

REM G Parameters 3C30  , 4931  , 1850
REM *******
100 REM Creating HAUPT.DEB by decompiling HAUPT.DCE
DIM SHARED L140$(49),L163$(49),L142$(86),L103(9),I58(8)
COMMON SHARED I15,L16,I17,I20$,I30,I32,L35,L40,I42,L47$,L55
COMMON SHARED I56,I58(),I59,I60,L63$,L65$,L66$,L68$,I70,L72$,L73$
COMMON SHARED I74,I76,L78$,L80$,I82,L84$,L86$,L88$,L90$,L92$,L94$
COMMON SHARED L96$,I98,L101$,I102,L103(),L104$,I105,L107$,I109,L111$,L112$
COMMON SHARED L113$,L114$,L115$,L117$,L118$,L120$,L122$,L124$,L125$,L127$,L128$
COMMON SHARED L130$,I132,L134$,L135$,L137$,L139,L140$(),L142$(),L143,L144,L149
COMMON SHARED L151$,L152$,L153$,L154$,L155$,L156$,L157$,L158$,L163$(),L164,L167
COMMON SHARED L170,L172$,L173$,L176$,L177$,L178$,L179$,L180$,L181$,L182$,L183$
COMMON SHARED L184,I185,I197,I199,L200$,L201$,L203$,L205$,L207$,L209$,L211$
COMMON SHARED L212$,L214$,L216$,L218$,L220$,L222$,L224$,L226$,L228$,L229$,L231$
COMMON SHARED L233$,L235$,L236$,L238$,L240$,L242$,L244$,L245$,L247$,L248$,L249$
COMMON SHARED L250$,L251$,L252$,L253$,L254$,L255$,L256$,L257$,L258$,L259$,L260$
COMMON SHARED L261$,L262$,L263$,L264$,L265$,L266$,L267$,L268$,L270$,L272$,L273$
COMMON SHARED L274$,L275$,L276$,L277$,L278$,L279$,L280$,L281$,L282$,L283$,I284
COMMON SHARED L285$,I286,L287$,I288,L289$,I290,L291$,L292$,L293$,L294$,L295$
COMMON SHARED L296$,L297$,L298$,L300$,L301$,I303,L304$,L305$,I306,I307,L309$
COMMON SHARED L315$,L318$,L320$,L322$,L324$


110 KEY 15,CHR$(8) + CHR$(50)
120 KEY 16,CHR$(40) + CHR$(50)
130 KEY 17,CHR$(8) + CHR$(33)
140 KEY 18,CHR$(40) + CHR$(33)

150 KEY(9) ON
160 KEY(10) ON
170 KEY(15) ON
180 KEY(16) ON
190 KEY(17) ON
200 KEY(18) ON

210 ON KEY(9) GOSUB 1270'????
220 ON KEY(10) GOSUB 1450'????
230 ON KEY(15) GOSUB 1640'????
240 ON KEY(16) GOSUB 1640'????
250 ON KEY(17) GOSUB 1810'????
260 ON KEY(18) GOSUB 1810'????

270 ON ERROR GOTO 290'????

REM Programmstart
280 GOTO 1990'????

REM ErrorRoutine
290 I15 = ERR
300 L16 = ERL
310 I17 = I15

320 IF I17 <> 24 THEN GOTO 390

330 LOCATE 24,10
340 IF ((I20$ <> "j") AND (I20$ <> "J")) = 0 THEN GOTO 370
350 INPUT "DRUCKER EINGESCHALTET ";I20$
360 GOTO 340'????
370 RESUME
380 GOTO 1270'????

390 IF I17 <> 25 THEN GOTO 470
400 LOCATE 24,10
410 IF ((I20$ <> "j") AND (I20$ <> "J")) = 0 THEN GOTO 450
420 PRINT ERDEV$; " bereit ? (fortsetzen mit J)";
430 LINE INPUT "";I20$
440 GOTO 420'????
450 RESUME
460 GOTO 1270'????

470 IF I17 <> 27 THEN GOTO 540
480 LOCATE 24,10
490 IF ((I20$ <> "j") AND (I20$ <> "J")) = 0 THEN GOTO 520
500 INPUT "PAPIER EINLEGEN ";I20$
510 GOTO 490'????
520 RESUME
530 GOTO 1270'????

540 IF I17 <> 52 THEN GOTO 640
550 LOCATE 24,5
560 PRINT "FEHLER = "; I15; "IN ZEILE = "; L16;
570 PRINT " FLKZ%="; I30; " NR: "; I32
580 PRINT TAB(20); "PROGRAMM BEENDET!! "
590 ON ERROR GOTO 0
600 RESET
610 CLEAR
620 SYSTEM
630 GOTO 1270'????

640 IF I17 <> 55 THEN GOTO 680
650 CLOSE #I32
660 RESUME
670 GOTO 1270'????

680 IF I17 <> 63 THEN GOTO 1010
690 L35 = ERL
700 IF L35 <> 3560 THEN GOTO 810
710 LOCATE 24,15
720 PRINT "FEHLER="; I15; CHR$(7); " SATZNUMMER="; L40;
730 PRINT "IN ZEILE = "; L16
740 GOTO 770'????
750 I42 = I42
760 I42 = I42 + 1
770 IF I42 <= 20000 THEN GOTO 750
780 RESET
790 RESUME 4040
800 GOTO 1010'????

810 IF L35 <> 3589 THEN GOTO 920
820 LOCATE 24,15
830 PRINT "FEHLER="; I15; CHR$(7); " SATZNUMMER="; L40;
840 PRINT "IN ZEILE = "; L16
850 GOTO 880'????
860 I42 = I42
870 I42 = I42 + 1
880 IF I42 <= 20000 THEN GOTO 860
890 RESET
900 RESUME 4040
910 GOTO 1010'????

920 LOCATE 24,10
930 PRINT "FEHLER = "; I15; "IN ZEILE = "; L16;
940 LOCATE 25,20
950 PRINT "PROGRAMM BEENDET!! "
960 ON ERROR GOTO 0
970 RESET
980 CLEAR
990 SYSTEM
1000 GOTO 1270'????

1010 IF I17 <> 68 THEN GOTO 1080
1020 LOCATE 24,10
1030 IF ((I20$ <> "j") AND (I20$ <> "J")) = 0 THEN GOTO 1060
1040 INPUT "DRUCKER EINGESCHALTET ";I20$
1050 GOTO 1030'????
1060 RESUME
1070 GOTO 1270'????

1080 IF I17 <> 75 THEN GOTO 1200
1090 LOCATE 24,10
1100 IF ((L47$ = "head.sys") OR (L47$ = "HEAD.SYS")) = 0 THEN GOTO 1140
1110 PRINT "Systemdatei wird bereits bearbeitet, in Zeile"; L16;
1120 RESUME
1130 GOTO 1190'????

1140 PRINT "FEHLER = "; I15; " in DATEI = "; L47$; "PROGRAMM BEENDET!! "
1150 ON ERROR GOTO 0
1160 RESET
1170 CLEAR
1180 SYSTEM
1190 GOTO 1270'????

1200 LOCATE 24,10
1210 PRINT "FEHLER = "; I15; "IN ZEILE = "; L16;
1220 PRINT TAB(20); "PROGRAMM BEENDET!! "
1230 ON ERROR GOTO 0
1240 RESET
1250 CLEAR
1260 SYSTEM


1270 KEY(9) OFF
1280 KEY(10) OFF
1290 KEY(15) OFF
1300 KEY(16) OFF
1310 KEY(17) OFF
1320 KEY(18) OFF

REM Code Segments: Value  Refs Int 3Fs  Type
REM                0000      8     0
1330 CALL S2000

1340 ON ERROR GOTO 0
1350 SHELL "WINDOW.EXE"
1360 ON ERROR GOTO 290'????

1370 CALL S2100
1380 KEY(9) ON
1390 KEY(10) ON
1400 KEY(15) ON
1410 KEY(16) ON
1420 KEY(17) ON
1430 KEY(18) ON
1440 RETURN

1450 KEY(9) OFF
1460 KEY(10) OFF
1470 KEY(15) OFF
1480 KEY(16) OFF
1490 KEY(17) OFF
1500 KEY(18) OFF

1510 CALL S2000
1520 ON ERROR GOTO 0
1530 SHELL "MICROTEX"

1540 CALL S2100
1550 ON ERROR GOTO 290'????
1560 KEY(9) ON
1570 KEY(10) ON
1580 KEY(15) ON
1590 KEY(16) ON
1600 KEY(17) ON
1610 KEY(18) ON
1620 Return

1630 KEY(9) OFF
1640 KEY(10) OFF
1650 KEY(15) OFF
1660 KEY(16) OFF
1670 KEY(17) OFF
1680 KEY(18) OFF

1690 CALL S2000
1700 ON ERROR GOTO 0
1710 SHELL "buchwin"

1720 CALL S2100
1730 ON ERROR GOTO 290'????
1740 KEY(9) ON
1750 KEY(10) ON
1760 KEY(15) ON
1770 KEY(16) ON
1780 KEY(17) ON
1790 KEY(18) ON
1800 RETURN

1810 KEY(9) OFF
1820 KEY(10) OFF
1830 KEY(15) OFF
1840 KEY(16) OFF
1850 KEY(17) OFF
1860 KEY(18) OFF

1870 CALL S2000
1880 ON ERROR GOTO 0
1890 SHELL "fokowin"

1900 CALL S2100
1910 ON ERROR GOTO 290'????
1920 KEY(9) ON
1930 KEY(10) ON
1940 KEY(15) ON
1950 KEY(16) ON
1960 KEY(17) ON
1970 KEY(18) ON
1980 RETURN

1990 GOTO 2090

2000 SUB S2000 (Might have parameters referred to as P6, P8...etc)
2010   DEF SEG = L55
2020   GOTO 2050'????
2030   I58(I56) = PEEK(0)
2040   I56 = I56 + 1
2050   IF I56 <= 3999 THEN GOTO 2030
2060   DEF SEG
2070 END SUB
2080 REM The subroutine just ended had 0 bytes worth of parameters

2090 GOTO 2190

2100 SUB S2100 (Might have parameters referred to as P6, P8...etc)
2110   DEF SEG = L55
2120   GOTO 2140'????
2130   POKE I59 ,I58(I59)
2140   I59 = I59 + 1
2150   IF I59 <= 3999 THEN GOTO 2130
2160   DEF SEG
2170 END SUB
2180 REM The subroutine just ended had 0 bytes worth of parameters

Rem Start/Main
2190 I32 = 1
2200 L47$ = "HEAD.SYS"
2210 I60 = 240
2220 OPEN L47$ FOR RANDOM ??  AS #I32 LEN=I60
2230 FIELD #1,240 AS L63$
2240 GET #1,1
2250 L65$ = L63$
2260 CLOSE #1

2270 L66$ = MID$(L65$,1,2)
2280 L68$ = MID$(L65$,3,8)
2290 I70 = CVI(MID$(L65$,11,2))
2300 L72$ = MID$(L65$,13,4)
2310 L73$ = MID$(L65$,17,9)
2320 I74 = CVI(MID$(L65$,26,2))
2330 I76 = CVI(MID$(L65$,28,2))
2340 L78$ = MID$(L65$,30,30)
2350 L80$ = MID$(L65$,60,30)
2360 I82 = CVI(MID$(L65$,90,2))
2370 L84$ = MID$(L65$,92,2)
2380 L86$ = MID$(L65$,94,2)
2390 L88$ = MID$(L65$,96,2)
2400 L90$ = MID$(L65$,98,2)
2410 L92$ = MID$(L65$,124,5)
2420 L94$ = MID$(L65$,102,2)
2430 L96$ = MID$(L65$,73,1)
2440 I98 = CVI(MID$(L65$,113,2))
2450 L101$ = MID$(L65$,129,108)
2460 FOR I102 = 1 TO 8
2470   L103(I102) = MID$(L65$,I102 + 63,1)
2480 NEXT
2490 I105 = VAL(L103$(8))
2500 IF ((I105 > 8) OR (I105 <= 0)) = 0 THEN GOTO 2520'????
2510 I105 = 1

2520 OPEN L88$ + "BILDSCHI.DAT" FOR INPUT ??  AS #1
2530 LINE INPUT #1,L107$
2540 RESET 'CLOSE #1?

2550 L55 = INT(22)
2560 I109 = 1
2570 I32 = 2
2580 L47$ = L84$ + "NOTA.SYS"
2590 I60 = 240

2600 OPEN L47$ FOR RANDOM ??  AS #I32 LEN=I60
2610 FIELD #2,240 AS L111$
2620 GET #2,I109
2630 L112$ = L111$
2640 RESET 'CLOSE #1?

2650 L113$ = MID$(L112$,1,4)
2660 L114$ = MID$(L112$,5,7)
2670 L115$ = MID$(L112$,26,1)
2680 L117$ = MID$(L112$,27,1)
2690 L118$ = MID$(L112$,50,5)
2700 L120$ = MID$(L112$,55,3)
2710 I32 = 2
2720 L47$ = L94$ + "NOTA.SYS"
2730 I60 = 240

2740 OPEN L47$ FOR RANDOM ??  AS #I32 LEN=I60
2750 FIELD #2,240 AS L111$
2760 GET #2,I109
2770 L112$ = L111$
2780 RESET

2790 L122$ = MID$(L112$,12,7)
2800 L124$ = MID$(L112$,19,7)
2810 L125$ = MID$(L112$,28,1)
2820 L127$ = MID$(L112$,29,1)
2830 L128$ = MID$(L112$,30,20)
2840 L130$ = MID$(L112$,58,3)
2850 I132 = CVI(MID$(L112$,61,2))
2860 L134$ = MID$(L112$,64,7)

2870 KEY(9) ON
2880 KEY(10) ON
2890 KEY(15) ON
2900 KEY(16) ON
2910 KEY(17) ON
2920 KEY(18) ON

2930 L135$ = ""
2940 L137$ = L88$ + "DR1.DAT"

2950 OPEN L137$ FOR INPUT ??  AS #1
2960 GOTO 2990'????
2970 LINE INPUT #1,L140$(L139)
2980 L139 = L139 + 1
2990 IF L139 <= 20 THEN GOTO 2970
3000 RESET

3010 GOTO 3080'????
3020 L142$(L139 + 11) = ""
3030 L143 = LEN(L140$(L139))
3040 GOTO 3060'????
3050 L142$(L139 + 11) = L142$(L139 + 11) + CHR$(VAL(MID$(L140$(L139),L144,3)))
3060 L144 = L144 + 3
3070 IF L144 <= L143 THEN GOTO 3050
3080 L139 = L139 + 1
3090 IF L139 <= 8 THEN GOTO 3020

3100 GOTO 3180'????
3110 L142$(L139 + -10 + 22) = ""
3120 L149 = LEN(L140$(L139))
3130 GOTO 3160'????
3140 IR122 = ( L142$(L139 + -10 + 22) )
3150 IR122 = IR122 + CHR$(VAL(MID$(L140$(L139),L144,3)))
3160 L144 = L144 + 3
3170 IF L144 <= L149 THEN GOTO 3140
3180 L139 = L139 + 1
3190 IF L139 <= 18 THEN GOTO 3110
3200 L142$(20) = L140$(9)
3210 L142$(21) = L140$(10)
3220 L142$(31) = L140$(19)
3230 L142$(32) = L140$(20)

3240 L137$ = L88$ + "BS.DAT"
3250 OPEN L137$ FOR INPUT ??  AS #1
3260 GOTO 3310'????
3270 LINE INPUT #1,L140$(L139)
3280 IF ((L139 < 40) AND (INSTR(L140$(L139)," ") > 0)) = 0 THEN GOTO 3310'????
3290 L140$(L139) = MID$(L140$(L139),1,INSTR(L140$(L139)," ") - 1)
3300 L139 = L139 + 1
3310 IF L139 <= 48 THEN GOTO 3270
3320 RESET

3330 GOTO 3400'????
3340 L163$(L139) = ""
3350 L164 = LEN(L140$(L139))
3360 GOTO 3380'????

3370 L163$(L139) = L163$(L139) + CHR$(VAL(MID$(L140$(L139),L144,3)))
3380 L144 = L144 + 3
3390 IF L144 <= L164 THEN GOTO 3370
3400 L139 = L139 + 1
3410 IF L139 <= 6 THEN GOTO 3340
3420 GOTO 3490'????

3430 L163$(L139) = ""
3440 L167 = LEN(L140$(L139))
3450 GOTO 3470'????

3460 L163$(L139) = L163$(L139) + CHR$(VAL(MID$(L140$(L139),L144,3)))
3470 L144 = L144 + 3
3480 IF L144 <= L167 THEN GOTO 3460
3490 L139 = L139 + 1
3500 IF L139 <= 17 THEN GOTO 3430
3510 GOTO 3580'????

3520 L163$(L139) = ""
3530 L170 = LEN(L140$(L139))
3540 GOTO 3560'????

3550 L163$(L139) = L163$(L139) + CHR$(VAL(MID$(L140$(L139),L144,3)))
3560 L144 = L144 + 3
3570 IF L144 <= L170 THEN GOTO 3550
3580 L139 = L139 + 1
3590 IF L139 <= 37 THEN GOTO 3520
3600 IF VAL(L163$(22)) <> 0 THEN GOTO 3620'????
3610 L163$(22) = L140$(22)

3620 OPEN "ANSCHR.DAT" FOR INPUT  AS #1
3630 LINE INPUT #1,L176$
3640 LINE INPUT #1,L142$(33)
3650 LINE INPUT #1,L142$(34)
3660 LINE INPUT #1,L179$
3670 LINE INPUT #1,L142$(35)
3680 LINE INPUT #1,L142$(36)
3690 LINE INPUT #1,L182$
3700 LINE INPUT #1,L183$
3710 CLOSE

3720 L184 = LEN(L176$ + L142$(34) + L142$(35) + L142$(36))
3730 GOTO 3750'????
3740 I185 = I185 + ASC(MID$(L176$ + L142$(34) + L142$(35) + L142$(36),L139,1))
3750 L139 = L139 + 1
3760 IF L139 <= L184 THEN GOTO 3740
3770 R0 = I185
3780 IF ((I185 = 0) OR (R0 <> VAL(L92$))) = 0 THEN GOTO 4030'????
3790 CLS
3800 LOCATE 10,10
3810 PRINT " ********************************************* "
3820 LOCATE 11,10
3830 PRINT " *****                                  ***** "
3840 LOCATE 12,10
3850 PRINT " ***** UNZULŽSSIGE VERSIONSMANIPULATION  ***** "
3860 LOCATE 13,10
3870 PRINT " *****    PROGRAMMDATEIEN ELIMINIERT     ***** "
3880 LOCATE 14,10
3890 PRINT " ***** ---   R A U B K O P I E ???   --- ***** "
3900 LOCATE 15,10
3910 PRINT " *****                                   ***** "
3920 LOCATE 16,10
3930 PRINT " ********************************************* "
3940 SHELL "ATTRIB.EXE -R *.EXE"
3950 SHELL "FLAG *.EXE /SRW "
3960 KILL "*.EXE"
3970 GOTO 3990'????
3980 PRINT CHR$(7)
3990 I197 = I197 + 1
4000 IF I197 <= 5000 THEN GOTO 3980
4010 SYSTEM

4020 I199 = ( -(LEN(L142$(33) + L142$(34) + L179$ + L142$(35) + L142$(36)) - 70)) * 0.5
4030 L200$ = L142$(33) + L142$(34) + SPACE$(I199) + L179$ + L142$(35) + SPACE$(I199) + L142$(36)
4040 L142$(39) = CHR$(64)
4050 L142$(48) = CHR$(21)
4060 L142$(57) = CHR$(189)
4070 L142$(40) = CHR$(91)
4080 L142$(49) = CHR$(142)
4090 L142$(58) = CHR$(216)
4100 L142$(41) = CHR$(92)
4110 L142$(50) = CHR$(153)
4120 L142$(59) = CHR$(218)
4130 L142$(42) = CHR$(93)
4140 L142$(51) = CHR$(154)
4150 L142$(60) = CHR$(219)
4160 L142$(43) = CHR$(123)
4170 L142$(52) = CHR$(132)
4180 L142$(61) = CHR$(204)
4190 L142$(44) = CHR$(124)
4200 L142$(53) = CHR$(148)
4210 L142$(62) = CHR$(206)
4220 L142$(45) = CHR$(125)
4230 L142$(54) = CHR$(129)
4240 L142$(63) = CHR$(207)
4250 L142$(46) = CHR$(126)
4260 L142$(55) = CHR$(225)
4270 L142$(64) = CHR$(222)
4280 GOSUB 5640
4290 L245$ = CHR$(27)
4300 L247$ = CHR$(95)
4310 L248$ = STRING$(1,7)
4320 L249$ = CHR$(13)
4330 L250$ = CHR$(8)
4340 L252$ = CHR$(VAL(L140$(42)))
4350 L254$ = L163$(25)
4360 L256$ = L163$(26)
4370 L258$ = L163$(27)
4380 L260$ = L163$(28)
4390 L262$ = L163$(29)
4400 L264$ = L163$(30)
4410 L266$ = L163$(31)
4420 L268$ = L163$(32)
4430 L270$ = " A N W A L T "
4440 L272$ = "  N O T A R  "
4450 L274$ = L163$(33)
4460 L276$ = L163$(34)
4470 L278$ = L163$(35)
4480 L280$ = L163$(36)
4490 L282$ = L163$(37)
4500 I284 = VAL(L140$(38))
4510 I286 = VAL(L140$(39))
4520 I288 = VAL(L140$(40))
4530 I290 = VAL(L140$(41))
4540 L292$ = L140$(7) + STRING$(2," ")
4550 L142$(77) = MID$(L292$,1,1)
4560 L142$(79) = MID$(L292$,2,1)
4570 IF L142$(79) <> " " THEN GOTO 4590'????
4580 L142$(79) = L142$(77)
4590 L296$ = L140$(8) + STRING$(4," ")
4600 L142$(83) = MID$(L296$,1,2)
4610 L142$(85) = MID$(L296$,3,2)
4620 IF L142$(85) <> "  " THEN GOTO 4640'????
4630 L142$(85) = L142$(83)
4640 L301$ = L140$(21)
4650 CLS
4660 OPEN "HAUPT.DAT" FOR INPUT  AS #1
4670 FOR I303 = 1 TO 23
4680   LINE INPUT #1,L304$
4690   LOCATE I303,1
4700   PRINT L304$
4710 NEXT
4720 CLOSE #1
4730 L305$ = ""
4740 L305$ = INKEY$
4750 IF ((L305$ <> L252$) AND (L305$ <> "")) = 0 THEN GOTO 4740'????
4760 I306 = ASC(L305$)
4770 IF I306 <= 90 THEN GOTO 4790
4780 I306 = I306 - 32
4790 I306 = I306 - 64
4800 I307 = I306
4810 IF I307 <> 1 THEN GOTO 4870
4820 IF L103$(1) <> "1" THEN GOTO 4850
4830 CHAIN "AKTE"
4840 GOTO 4860'????
4850 CHAIN "HAUPT"
4860 GOTO 5640'????
4870 IF I307 <> 2 THEN GOTO 4930
4880 IF L103$(1) <> "1" THEN GOTO 4910
4890 CHAIN "ADR"
4900 GOTO 4920'????
4910 CHAIN "HAUPT"
4920 GOTO 5640'????
4930 IF I307 <> 3 THEN GOTO 4960
4940 CHAIN "STAM"
4950 GOTO 5640'????
4960 IF I307 <> 4 THEN GOTO 5000
4970 SHELL "SERVICE"
4980 CHAIN "HAUPT"
4990 GOTO 5640'????
5000 IF I307 <> 5 THEN GOTO 5060
5010 IF L103$(2) <> "1" THEN GOTO 5040
5020 CHAIN "FIBU"
5030 GOTO 5050'????
5040 CHAIN "HAUPT"
5050 GOTO 5640'????
5060 IF I307 <> 6 THEN GOTO 5090
5070 CHAIN "SERVICEM"
5080 GOTO 5640'????
5090 IF I307 <> 7 THEN GOTO 5150
5100 IF L103$(4) <> "1" THEN GOTO 5130
5110 CHAIN "MV"
5120 GOTO 5140'????
5130 CHAIN "HAUPT"
5140 GOTO 5640'????
5150 IF I307 <> 8 THEN GOTO 5210
5160 IF L103$(7) <> "1" THEN GOTO 5190
5170 CHAIN "UN"
5180 GOTO 5200'????
5190 CHAIN "HAUPT"
5200 GOTO 5640'????
5210 IF I307 <> 9 THEN GOTO 5270
5220 IF L103$(6) <> "1" THEN GOTO 5250
5230 CHAIN "TERMIN"
5240 GOTO 5270'????
5250 CHAIN "HAUPT"
5260 GOTO 5640'????
5270 IF I307 <> 10 THEN GOTO 5330
5280 IF L103$(5) <> "1" THEN GOTO 5310
5290 CHAIN "BRAGO"
5300 GOTO 5320'????
5310 CHAIN "HAUPT"
5320 GOTO 5640'????
5330 IF I307 <> 11 THEN GOTO 5360
5340 CHAIN "KURZB"
5350 GOTO 5640'????
5360 IF I307 <> 12 THEN GOTO 5390
5370 CHAIN "TEXT"
5380 GOTO 5640'????
5390 IF I307 <> 13 THEN GOTO 5420
5400 CHAIN "LISTEA"
5410 GOTO 5640'????
5420 IF I307 <> 14 THEN GOTO 5460
5430 SHELL "TERMINAL DATEXP"
5440 CHAIN "HAUPT"
5450 GOTO 5640'????
5460 IF I307 <> 15 THEN GOTO 5500
5470 SHELL "UA.EXE"
5480 CHAIN "HAUPT"
5490 GOTO 5640'????
5500 IF I307 <> 16 THEN GOTO 5560
5510 IF ((VAL(L163$(22)) > 9) OR (VAL(L163$(22)) < 1)) = 0 THEN GOTO 5540
5520 CHAIN "HAUPT"
5530 GOTO 5550'????
5540 CHAIN "NOTAR"
5550 GOTO 5640'????
5560 IF I307 <> 17 THEN GOTO 5620
5570 RESET
5580 CLEAR
5590 CLS
5600 SYSTEM
5610 GOTO 5640'????
5620 CHAIN "HAUPT"
5630 SYSTEM
5640 RETURN
5650 END
'Symbol Address  Symbol Address  Symbol Address  Symbol Address 
'I15    3AB0 IE  L16    3AB2 E   I17    3AB6 IE  I20$   3AB8 SI 
'I30    3ABC I   I32    3ABE IE  L35    3AC0 E   L40    3AC4     
'I42    3AC8 IE  L47$   3ACA SE  L55    3AAC E   I56    3ACE IE 
'I58    1B6A IA  I59    3AD0 IE  I60    3AD2 IE  L63$   3AD4 SE 
'L65$   3AD8 SE  L66$   3ADC SE  L68$   3AE0 SE  I70    3AE4 IE 
'L72$   3AE6 SE  L73$   3AEA SE  I74    3AEE IE  I76    3AF0 IE 
'L78$   3AF2 SE  L80$   3AF6 SE  I82    3AFA IE  L84$   3AFC SE 
'L86$   3B00 SE  L88$   3B04 SE  L90$   3B08 SE  L92$   3B0C SE 
'L94$   3B10 SE  L96$   3B14 SE  I98    3B18 IE  L101$  3B1A SE 
'I102   3B1E I   L103$  1B46 SA  L104$  1B66 S   I105   3B20 IE 
'L107$  3B22 S   I109   3B26 IE  L111$  3B28 SE  L112$  3B2C SE 
'L113$  3B30 SE  L114$  3B34 SE  L115$  3B38 SE  L117$  3B3C SE 
'L118$  3B40 SE  L120$  3B44 SE  L122$  3B48 SE  L124$  3B4C SE 
'L125$  3B50 SE  L127$  3B54 SE  L128$  3B58 SE  L130$  3B5C SE 
'I132   3B60 IE  L134$  3B62 SE  L135$  3B66 SE  L137$  3B6A SE 
'L139   3B6E E   L140$  1864 SA  L142$  19EC SEA L143   3B72 E   
'L144   3B76 E   L149   3B7A E   L151$  1888 S   L152$  1A3C SE 
'L153$  188C S   L154$  1A40 SE  L155$  18B0 S   L156$  1A68 SE 
'L157$  18B4 S   L158$  1A6C SE  L163$  1928 SEA L164   3B7E E   
'L167   3B82 E   L170   3B86 E   L172$  1980 SE  L173$  18BC S   
'L176$  3B8A S   L177$  1A70 SE  L178$  1A74 SE  L179$  3B8E S   
'L180$  1A78 SE  L181$  1A7C SE  L182$  3B92 S   L183$  3B96 S   
'L184   3B9A E   I185   3B9E IE  I197   3BA0 IE  I199   3BA2 IE 
'L200$  3BA4 SE  L201$  1A8A SE  L203$  1AAE SE  L205$  1AD2 SE 
'L207$  1A8E SE  L209$  1AB2 SE  L211$  1AD6 SE  L212$  1A92 SE 
'L214$  1AB6 SE  L216$  1ADA SE  L218$  1A96 SE  L220$  1ABA SE 
'L222$  1ADE SE  L224$  1A9A SE  L226$  1ABE SE  L228$  1AE2 SE 
'L229$  1A9E SE  L231$  1AC2 SE  L233$  1AE6 SE  L235$  1AA2 SE 
'L236$  1AC6 SE  L238$  1AEA SE  L240$  1AA6 SE  L242$  1ACA SE 
'L244$  1AEE SE  L245$  3BA8 SE  L247$  3BAC SE  L248$  3BB0 SE 
'L249$  3BB4 SE  L250$  3BB8 SE  L251$  190C S   L252$  3BBC SE 
'L253$  198C SE  L254$  3BC0 SE  L255$  1990 SE  L256$  3BC4 SE 
'L257$  1994 SE  L258$  3BC8 SE  L259$  1998 SE  L260$  3BCC SE 
'L261$  199C SE  L262$  3BD0 SE  L263$  19A0 SE  L264$  3BD4 SE 
'L265$  19A4 SE  L266$  3BD8 SE  L267$  19A8 SE  L268$  3BDC SE 
'L270$  3BE0 SE  L272$  3BE4 SE  L273$  19AC SE  L274$  3BE8 SE 
'L275$  19B0 SE  L276$  3BEC SE  L277$  19B4 SE  L278$  3BF0 SE 
'L279$  19B8 SE  L280$  3BF4 SE  L281$  19BC SE  L282$  3BF8 SE 
'L283$  18FC S   I284   3BFC IE  L285$  1900 S   I286   3BFE IE 
'L287$  1904 S   I288   3C00 IE  L289$  1908 S   I290   3C02 IE 
'L291$  1880 S   L292$  3C04 SE  L293$  1B22 SE  L294$  1B2A SE 
'L295$  1884 S   L296$  3C08 SE  L297$  1B3A SE  L298$  1B42 SE 
'L300$  18B8 S   L301$  3C0C SE  I303   3C14 I   L304$  3C10 S   
'L305$  3C16 SE  I306   1854 IE  I307   3C1A IE  L309$  1B4A S   
'L315$  1B4E S   L318$  1B56 S   L320$  1B62 S   L322$  1B5E S   
'L324$  1B5A S   
'Symbol Address  Symbol Address  Symbol Address  Symbol Address 
'I306   1854 IE  L140$  1864 SA  L291$  1880 S   L295$  1884 S   
'L151$  1888 S   L153$  188C S   L155$  18B0 S   L157$  18B4 S   
'L300$  18B8 S   L173$  18BC S   L283$  18FC S   L285$  1900 S   
'L287$  1904 S   L289$  1908 S   L251$  190C S   L163$  1928 SEA
'L172$  1980 SE  L253$  198C SE  L255$  1990 SE  L257$  1994 SE 
'L259$  1998 SE  L261$  199C SE  L263$  19A0 SE  L265$  19A4 SE 
'L267$  19A8 SE  L273$  19AC SE  L275$  19B0 SE  L277$  19B4 SE 
'L279$  19B8 SE  L281$  19BC SE  L142$  19EC SEA L152$  1A3C SE 
'L154$  1A40 SE  L156$  1A68 SE  L158$  1A6C SE  L177$  1A70 SE 
'L178$  1A74 SE  L180$  1A78 SE  L181$  1A7C SE  L201$  1A8A SE 
'L207$  1A8E SE  L212$  1A92 SE  L218$  1A96 SE  L224$  1A9A SE 
'L229$  1A9E SE  L235$  1AA2 SE  L240$  1AA6 SE  L203$  1AAE SE 
'L209$  1AB2 SE  L214$  1AB6 SE  L220$  1ABA SE  L226$  1ABE SE 
'L231$  1AC2 SE  L236$  1AC6 SE  L242$  1ACA SE  L205$  1AD2 SE 
'L211$  1AD6 SE  L216$  1ADA SE  L222$  1ADE SE  L228$  1AE2 SE 
'L233$  1AE6 SE  L238$  1AEA SE  L244$  1AEE SE  L293$  1B22 SE 
'L294$  1B2A SE  L297$  1B3A SE  L298$  1B42 SE  L103$  1B46 SA 
'L309$  1B4A S   L315$  1B4E S   L318$  1B56 S   L324$  1B5A S   
'L322$  1B5E S   L320$  1B62 S   L104$  1B66 S   I58    1B6A IA 
'L55    3AAC E   I15    3AB0 IE  L16    3AB2 E   I17    3AB6 IE 
'I20$   3AB8 SI  I30    3ABC I   I32    3ABE IE  L35    3AC0 E   
'L40    3AC4     I42    3AC8 IE  L47$   3ACA SE  I56    3ACE IE 
'I59    3AD0 IE  I60    3AD2 IE  L63$   3AD4 SE  L65$   3AD8 SE 
'L66$   3ADC SE  L68$   3AE0 SE  I70    3AE4 IE  L72$   3AE6 SE 
'L73$   3AEA SE  I74    3AEE IE  I76    3AF0 IE  L78$   3AF2 SE 
'L80$   3AF6 SE  I82    3AFA IE  L84$   3AFC SE  L86$   3B00 SE 
'L88$   3B04 SE  L90$   3B08 SE  L92$   3B0C SE  L94$   3B10 SE 
'L96$   3B14 SE  I98    3B18 IE  L101$  3B1A SE  I102   3B1E I   
'I105   3B20 IE  L107$  3B22 S   I109   3B26 IE  L111$  3B28 SE 
'L112$  3B2C SE  L113$  3B30 SE  L114$  3B34 SE  L115$  3B38 SE 
'L117$  3B3C SE  L118$  3B40 SE  L120$  3B44 SE  L122$  3B48 SE 
'L124$  3B4C SE  L125$  3B50 SE  L127$  3B54 SE  L128$  3B58 SE 
'L130$  3B5C SE  I132   3B60 IE  L134$  3B62 SE  L135$  3B66 SE 
'L137$  3B6A SE  L139   3B6E E   L143   3B72 E   L144   3B76 E   
'L149   3B7A E   L164   3B7E E   L167   3B82 E   L170   3B86 E   
'L176$  3B8A S   L179$  3B8E S   L182$  3B92 S   L183$  3B96 S   
'L184   3B9A E   I185   3B9E IE  I197   3BA0 IE  I199   3BA2 IE 
'L200$  3BA4 SE  L245$  3BA8 SE  L247$  3BAC SE  L248$  3BB0 SE 
'L249$  3BB4 SE  L250$  3BB8 SE  L252$  3BBC SE  L254$  3BC0 SE 
'L256$  3BC4 SE  L258$  3BC8 SE  L260$  3BCC SE  L262$  3BD0 SE 
'L264$  3BD4 SE  L266$  3BD8 SE  L268$  3BDC SE  L270$  3BE0 SE 
'L272$  3BE4 SE  L274$  3BE8 SE  L276$  3BEC SE  L278$  3BF0 SE 
'L280$  3BF4 SE  L282$  3BF8 SE  I284   3BFC IE  I286   3BFE IE 
'I288   3C00 IE  I290   3C02 IE  L292$  3C04 SE  L296$  3C08 SE 
'L301$  3C0C SE  L304$  3C10 S   I303   3C14 I   L305$  3C16 SE 
'I307   3C1A IE 


Natürlich, die ganzen Variablennamen und Co sind natürlich futsch zwinkern

/edit leider gibts das programm nicht im netz, sonst hätte ichs zum testen schonmal runtergeladen, vor allem wenn mans nur einmal braucht was solls, kaufen kann mans wenn mans dann wirklich ständig braucht immer noch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 22.04.2005, 19:58    Titel: Antworten mit Zitat

Ich sage es nur ungern:

Ich glaube kaum das jemand so ein Prog kennt, geschweige den ein solches Programmieren könnte. Geh zu nem Kumpel der Kazza der eMule hat der solls dir Saugen. Aber ansonsten solltest du die Programme immer kaufen zwinkern
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
FloSoft



Anmeldungsdatum: 22.04.2005
Beiträge: 3

BeitragVerfasst am: 22.04.2005, 22:20    Titel: Antworten mit Zitat

Programmbeschreibung die ich erhalten habe:

Zitat:
It works through the EXE file byte by byte. It recognises certain combinations of bytes that often signal such things as For/Next loops. It does not always recognise these - gets it wrong sometimes - there are so many of them. Its good at recognising the Basic functions (> 99% of them) and if it is compiled to run with a run time module then each of these has a code which the decompiler picks up. Unfortunately this code changes slightly between versions of the compiler which causes some problems. It does not recognise the functions in older programs that were compiled to run as a stand alone module.
There is a lot more to it I've just simplified it here. I exploit any weekness that I can spot in the .EXE file.


Der code der da rauskam funktioniert, hab ihn nun umgeschrieben (die goto-konstrukte aufgelöst, die sprungadressen korrigiert)
Die Datei funktioniert exakt wie das Originalprogramm (ließ sich wieder kompilieren/ausführen)

Der Decompiler funktioniert lächeln

Ihr seit nicht zufällig ka so 100 leute, dann könnten wir das programm zusammen anschaffen, er hat gemeint das er mir den source dazugibt, da ich ihn nach einer API gefragt habe.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz