ASM-Code der EXE-Datei

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

ASM-Code der EXE-Datei

Beitrag von Leonhard »

Ich hab nen bisschen mit dem Compiler und seinen Nebenprogrammen gespielt und hab es geschaft, das der ASM-Code von FASM.exe abgespeichert/Kopiert wird.

Anweisung 1:

Code: Alles auswählen

Enumeration 1
  #File1
EndEnumeration
#OutFileName$  = "PB_EditorOutput.asm" ;<--- Die ASM-Output-Datei (im Compiler-verzeichnis)
#FAsmFileName$ = "FASM_old.exe" ;<--- Die richtige FASM.exe

File$ = ProgramParameter()
CopyFile(File$, #OutFileName$)
RunProgram(#FAsmFileName$, File$, "")

If OpenFile(#File1, #OutFileName$)
  FileSeek(#File1, Lof(#File1))
  
  WriteStringN(#File1, "; IDE Options = PureBasic v4.00 (Windows - x86)")
  WriteStringN(#File1, "; CursorPosition = 8")
  WriteStringN(#File1, "; Folding = -")
  WriteStringN(#File1, "; EnableAsm")
  WriteStringN(#File1, "; DisableDebugger")
  
  CloseFile(#File1)
EndIf

End
Ändern Sie die Konstanten #OutFileName$ und #FAsmFileName$ nach ihren wünschen.

Speichern Sie diese Datei ab (z.b. ins Compilerverzeichnis mit dem Namen FASM.exe.pb).


Anweisung 2:
Erstellen Sie die EXE ins Compiler-Verzeichnis.
!!!Achtung!!!
Nicht FASM.exe nennen, da sonst die Orginal-Datei überschrieben wird. Nennen Sie die Datei vorrübergehend z.B. FASM_new.exe


Anweisung 2:
Jetzt ändern Sie die FASM.exe im Compiler-verzeichnis auf die Konstante #FAsmFileName$ um und die FASM_new.exe (bzw. der EXE-Name) auf FASM.exe.

Fertig
Nun wird bei jeder Erstellung einer EXE (DLL ???) eine Datei Namens #OutFileName$ erstellt. Darin steht der Complette Code des PB-Programms.

Hoffe das finden viele hilfreich.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Warum nicht einfach den Compilerschaler "/COMMENTED" nehmen :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Michael Vogel
Beiträge: 72
Registriert: 16.03.2006 11:20

Beitrag von Michael Vogel »

ts-soft hat geschrieben:Warum nicht einfach den Compilerschaler "/COMMENTED" nehmen :mrgreen:
:allright:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

mir ist schon heut früh die Redundanz des ersten postings aufgefallen.
befand es aber nicht wirklich einer antwort für würdig.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Michael Vogel
Beiträge: 72
Registriert: 16.03.2006 11:20

Beitrag von Michael Vogel »

Kaeru Gaman hat geschrieben:mir ist schon heut früh die Redundanz des ersten postings aufgefallen.
befand es aber nicht wirklich einer antwort für würdig.
Erfreulicher Sinneswandel... /:->
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Erfreulicher Sinneswandel...

wie soll ich das nun auffassen?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Michael Vogel
Beiträge: 72
Registriert: 16.03.2006 11:20

Beitrag von Michael Vogel »

Kaeru Gaman hat geschrieben:> Erfreulicher Sinneswandel...

wie soll ich das nun auffassen?
möglichst positiv <)
DeltaG
Beiträge: 112
Registriert: 10.09.2004 18:15

Beitrag von DeltaG »

ts-soft hat geschrieben:Warum nicht einfach den Compilerschaler "/COMMENTED" nehmen :mrgreen:
Wo muß ich diesen Schalter angeben und wo finde ich dann das Ergebnis?

DeltaG
Michael Vogel
Beiträge: 72
Registriert: 16.03.2006 11:20

Beitrag von Michael Vogel »

DeltaG hat geschrieben:
ts-soft hat geschrieben:Warum nicht einfach den Compilerschaler "/COMMENTED" nehmen :mrgreen:
Wo muß ich diesen Schalter angeben und wo finde ich dann das Ergebnis?

DeltaG
Entweder per Kommandozeile...
PBCompiler.exe MeineDatei.pb /COMMENTED

...oder besser noch mit einem Progrämmchen (für den Menüpunkt Tools), welches die aktuelle Datei umwandelt...
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Hab ich auch gemacht.
Bei mir gibt es die Menüpunkt Tools:

Letzte compilierte Datei (output) <-- öffnet letzte compilierte Datei in PB
Letzte compilierte Datei in ASM <-- öffnet letzte compilierte Datei in ASM
Antworten