Cygwin – Compile source naar binary (makefile)
Heel veel programma’s voor Linux zijn geschreven in C++ en worden zogenaamde “source tarballs” genoemd, dit betekend dat de c++ bestanden in een .TAR.GZ /.TAR.BZ2 bestand (archief) te downloaden zijn.
Om de source (broncode) om te zetten naar een bruikbaar (binary) bestand moet je eerst deze source compileren, dus deze door een c++ compiler halen om er een .EXE bestand of dergelijke van de maken, hoe je dat doet in cygwin (niet een standaard linux omgeving) laat ik hier zien, ik gebruik dan even het voorbeeld van Binwalk v0.5.0
Ik heb het hier in meerdere (onlogisch lijkende) stappen uitgelegd, maar dit heb ik gedaan zodat je kan zien wat er nodig is (dependacies) en hoe je cygwin moet gebruiken!
De basis procedure:
1 2 3 4 5 |
# tar xvzf package.tar.gz (or tar xvjf package.tar.bz2) # cd package # ./configure # make # make install |
1) Download “binwalk v0.5.0” hier, let op: geen 1.0.0+, die is in pyton geschreven!
2) Plaats het binwalk-0.5.0.tar.gz bestand in je “cygwin home” folder [CygwinFolder]\home\[GEBRUIKER], controleer het eventueel met het ls (list) commando of het inderdaad goed is gegaan:
3) Eerst moeten we de inhoud van binwalk-0.5.0.tar.gz uitpakken, dit doe je met het volgende commando:
tar xvzf binwalk-0.5.0.tar.gz
4) Ga naar de folder met de broncode (source), nu is het tijd om het pakket te configureren, dit wordt gedaan door het configure script. Met configureren compile je nog niets!, je omgeving en de variablen worden gecontroleerd, en er word een bestand Makefile aangemaakt, deze heb je nodig om de daadwerkelijke binary te maken.
Ps. Zolang er geen FOUTMELDINGEN (errors) getoont worden met het configuratiescript is er niets aan de hand!
1 2 3 4 5 6 7 8 9 10 11 |
Phoenix@TheBeast2012 ~ $ cd binwalk-0.5.0 Phoenix@TheBeast2012 ~/binwalk-0.5.0 $ ls docs src Phoenix@TheBeast2012 ~/binwalk-0.5.0 $ cd src Phoenix@TheBeast2012 ~/binwalk-0.5.0/src |
(kan natuurlijk ook in 1 keer met cd binwalk-0.5.0/src/)
5) Als je nu in de src folder zit, tik dan het volgende in om het configuratie script te draaien: ./configure
We missen de C Compiler en GCC (GNU Compiler Collection, website)
Cygwin C Compiler & GCC installeren
6) Open setup.exe (cygwin webinstaller)
7) Klik door totdat je bij de installatielijst komt, zoek op “GCC”, wat je nodig hebt zit onder DEVEL (Developement), klik op “default” naast het icoontje bij DEVEL zodat deze naar “install” springt, ga door met de installatie.
8) Er komt nu een pop-up in beeld dat meld dat we meer paketten nodig hebben om de door ons geselecteerde pakketten goed te laten werken (dependancies), klik op volgende.
9) De geselecteerde bestanden worden nu gedownload en geïnstalleerd.
10) Ga terug naar cygwin (of start opnieuw op) en tik wederom in: ./configure
Het configure script komt nu een stuk verder echter zie je wederom een foutmelding: de libcurl bibliotheek is niet aanwezig!
Cygwin “libcurl” library installeren
11) Open setup.exe (cygwin webinstaller)
12) Klik door totdat je bij de installatielijst komt, zoek op “libcurl”, selecteer hier alle paketten in alle categorien, klik naast het icoontje zodat deze naar “install” springt, ga door met de installatie.
13) Er komt nu een pop-up in beeld dat meld dat we meer paketten nodig hebben om de door ons geselecteerde pakketten goed te laten werken (dependancies), klik op volgende.
14) De geselecteerde bestanden worden nu gedownload en geinstalleerd.
15) Ga terug naar cygwin (of start opnieuw op) en tik wederom in: ./configure
Je ziet nu dat alles goed is gegaan zonder foutmeldingen, onderaan staat dat het bestand “makefile” is aangemaakt! je kan nu door met het compileren van binwalk v0.5.0
16) Tik het volgende commando in: make
17) het volgende probleem doet zich voor:
Het commando “make” wordt niet herkent, dit moeten we ook installeren!
Cygwin “make” library installeren
18) Open setup.exe (cygwin webinstaller)
19) Klik door totdat je bij de installatielijst komt, zoek op “make”, selecteer make onder “DEVEL”, ga door met de installatie.
20) De geselecteerde bestanden worden nu gedownload en geïnstalleerd.
21) Ga terug naar cygwin (of start opnieuw op) en tik wederom in: make
Nu zie je dat dit ook goed gaat!
22) Nu gaan we binwalk 0.5.0 installeren, tik het volgende commando in: make install
Nu kun je binwalk starten vanaf de commandolijn: binwalk
Gecompileerde binary in Windows uitvoeren
Er is een bestand binwalk.exe in [CygwinFolder]\home\[GEBRUIKER]\binwalk-0.5.0\src\binwalk.exe aangemaakt, dit bestand kun je starten in windows, echter heeft het wel een aantal DLL bestanden nodig, om deze goed in windows uit te voeren is kun je dit bestand het beste naar [CygwinFolder]\bin\ of [CygwinFolder]\lib\ verplaatsen, dan kun je het in windows zonder problemen uitvoeren:
Bronnen:
tuxfiles.org