Avatar billede alex_sleiborg Nybegynder
02. december 2005 - 09:24 Der er 12 kommentarer og
1 løsning

Compile med .exe fil og noget assembler kode

Kan det lade sige gøre og compile sin kode sammen med et program?

Altså hvis feks jeg har test.exe, men jeg har ikke sourcen til det. Kan man så godt compile det med i ens eget program? Altså så man kan udnytte de funktioner der er i test.exe?

Og så en anden ting.
Er det muligt at have assembler source inden i sin c++ source, som man så kan assemble under runtime?
Avatar billede bertelbrander Novice
03. december 2005 - 00:22 #1
Kort version: Nej.

Lang version: Hvis du finder en disassembler på nettet, disassember test.exe og ved hvor du skal modificere den genererede assembler kode, kan du med lidt besvær indsætte din egen assembler kode, og assemble det hele til et program. Men det svarer lidt til at lave en tyr ud af en hakkebøf, give den noget mere fodder for så at lave engelske bøf.

Hvad skulle formålet være?
Avatar billede alex_sleiborg Nybegynder
05. december 2005 - 14:46 #2
Jeg er igang med at skrive en bootloader i assembler. Er egentlig bare mest for sjov, og ville så gerne lave et program i c++ som kunne installere bootloaderen. Men ville prøve om jeg ikke kunne lave sådan at installations programmet indholdt bootloaderen. Altså så mit installations program kun var en fil. Det program jeg vil have compilet med er nasm
Avatar billede bertelbrander Novice
10. december 2005 - 18:15 #3
I så fald kan du:

Lave et lille program der læser din bootloader (.exe filen) og laver det om til i fil med et indhold i stil med:

const char BootLoader[] =
{
  0x12, 0x33, ....
};

Så kan du lave et andet lille program der inkluderer denne fil og som, når det bliver kørt, laver en .exe fil ud fra indholdet af BootLoader[].
Avatar billede alex_sleiborg Nybegynder
21. december 2005 - 10:51 #4
Ja okay sådan kan det jo gøres. Men jeg slipper ikke for at have nasm med til at assemble min bootloader?
Avatar billede bertelbrander Novice
21. december 2005 - 20:07 #5
Du skal ikke bruge nasm til at assemble, du skriver blot indholdet at BootLoader[] som en binær fil, denne binære fil er så bootloaderen.
Avatar billede alex_sleiborg Nybegynder
21. december 2005 - 21:56 #6
Jeg kan ikke helt følge dig lige nu. Min bootloader assembler kode, skal jo assembles før den duer til noget??? Kan jeg så inkludere min binære kode i min .exe fil?

Eller så skal jeg jo have min .exe fil og så en færdigt assemblet fil?
Avatar billede bertelbrander Novice
21. december 2005 - 22:27 #7
Ja, din bootloader skal assembles til en exe fil, for at kunne bruges, til dette bruges nasm.

Tricket gik ud på at få denne exe fil puttet ind i et andet program, og ud af dette program igen, som en exe-fil.
Avatar billede alex_sleiborg Nybegynder
21. december 2005 - 22:31 #8
Ja okay. Jeg prøver lige at kigge på det. Men skal jeg så bare bruge en linker, når jeg har fået min bootloader assemblet?
Avatar billede bertelbrander Novice
21. december 2005 - 22:33 #9
Ja, du skal sansynligvis bruge en linker til at lave exe filen.
Avatar billede alex_sleiborg Nybegynder
03. januar 2006 - 12:10 #10
Smid et svar bertel, hvis du altså vil have point...

Jeg har ikke lige tid til at kigge mere på det lige nu. Men jeg skal nok lige lave en lille guide til hvordan det kan gøres, når jeg får lige får tid her inden for den nærmeste fremtid
Avatar billede alex_sleiborg Nybegynder
14. december 2006 - 11:44 #11
Smid et svar så jeg kan få lukket spørgsmålet. Kunne ikke få det til at virke, på den måde jeg gerne ville
Avatar billede bertelbrander Novice
15. december 2006 - 00:38 #12
Jeg samler ikke på point.
Avatar billede alex_sleiborg Nybegynder
15. december 2006 - 08:30 #13
Nå okay. Men så lukker jeg alligevel. Men mange tak alligevel for hjælpen:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester