93 lines
2.2 KiB
Python
93 lines
2.2 KiB
Python
|
INSTRUCTIONS FOR BUILDING XPWN
|
||
|
------------------------------
|
||
|
|
||
|
These are very basic instructions on how to build xpwn related projects, they
|
||
|
are tailored to Debian based systems. They are not meant to be a substitute
|
||
|
for experience in programming in GNU/Linux environments, but it should be a
|
||
|
good starting point.
|
||
|
|
||
|
1. Install a basic build environment (compilers, etc.):
|
||
|
|
||
|
sudo apt-get install build-essential
|
||
|
|
||
|
2. Install some prerequisites libraries required by xpwn:
|
||
|
|
||
|
sudo apt-get install libcrypt-dev libz-dev libbz2-dev3 libusb-dev
|
||
|
|
||
|
3. Install cmake. It is recommended you download and build it from the
|
||
|
official cmake website, since versions >= 2.6.0 are recommended.
|
||
|
|
||
|
wget http://www.cmake.org/files/v2.6/cmake-2.6.2.tar.gz
|
||
|
tar zxvf cmake-2.6.2.tar.gz
|
||
|
cd cmake-2.6.2
|
||
|
./configure
|
||
|
make
|
||
|
sudo make install
|
||
|
|
||
|
Now you are ready to build xpwn. It is highly recommended that you build
|
||
|
out-of-source (that is, the build products are not placed into the same
|
||
|
folders as the sources). This is much neater and cleaning up is as simple as
|
||
|
deleting the build products folder.
|
||
|
|
||
|
Assuming xpwn sources are in ~/xpwn:
|
||
|
|
||
|
4. Create a build folder
|
||
|
|
||
|
cd ~
|
||
|
mkdir build
|
||
|
cd build
|
||
|
|
||
|
5. Create Makefiles
|
||
|
|
||
|
cmake ~/xpwn
|
||
|
|
||
|
6. Build
|
||
|
|
||
|
make
|
||
|
|
||
|
7. Package
|
||
|
|
||
|
make package
|
||
|
|
||
|
BUILDING USEFUL LIBRARIES
|
||
|
-------------------------
|
||
|
|
||
|
These command-lines can be substituted in for step 6. The products are in the
|
||
|
subfolders (make package will not include them).
|
||
|
|
||
|
xpwn library (for IPSW generation)
|
||
|
|
||
|
make libXPwn.a
|
||
|
|
||
|
Windows pwnmetheus library (for QuickPwn)
|
||
|
|
||
|
make libpwnmetheus.dll
|
||
|
|
||
|
HELPFUL MAKEFILE GENERATION COMMAND-LINES
|
||
|
-----------------------------------------
|
||
|
|
||
|
These command-lines can be substituted in for step 5.
|
||
|
|
||
|
Add debugging symbols:
|
||
|
|
||
|
cmake ~/xpwn -DCMAKE_C_FLAGS=-g
|
||
|
|
||
|
Try to only use static libraries:
|
||
|
|
||
|
cmake ~/xpwn -DBUILD_STATIC=YES
|
||
|
|
||
|
|
||
|
CROSS-COMPILING
|
||
|
---------------
|
||
|
|
||
|
This is a complex and advanced topic, but it is possible with the appropriate
|
||
|
CMake toolchain files and properly configured build environment. I have
|
||
|
crossbuilt Windows, OS X, Linux x86, Linux x64, and iPhone binaries from one
|
||
|
Ubuntu machine. The source trees are properly configured for this task.
|
||
|
|
||
|
MORE HELP
|
||
|
---------
|
||
|
|
||
|
Consult the CMake documentation and wiki and look in the CMakeLists.txt files
|
||
|
for hints on how things are supposed to work.
|