-
Notifications
You must be signed in to change notification settings - Fork 107
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First Witchcraft Compiler Collection commit
- Loading branch information
0 parents
commit dbb0ff1
Showing
119 changed files
with
15,737 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
The Witchcraft Compiler Collection | ||
was written by the following authors: | ||
Jonathan Brossard | ||
|
||
|
||
For third party depedencies licenses, | ||
see LICENSE. | ||
|
||
linenoise, lua, lua-jit, openlibm are | ||
copyrights of their respective owners. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,256 @@ | ||
The Witcraft Compiler Collection is | ||
subject to the following licenses: | ||
|
||
-------------------------------------- MIT LICENSE ------------------------------------------- | ||
The MIT License (MIT) | ||
Copyright (c) 2016 Jonathan Brossard | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software | ||
and associated documentation files (the "Software"), to deal in the Software without | ||
restriction, including without limitation the rights to use, copy, modify, merge, publish, | ||
distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom | ||
the Software is furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all copies or | ||
substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, | ||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR | ||
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE | ||
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR | ||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
DEALINGS IN THE SOFTWARE. | ||
|
||
------------------------------------------------------------------------------------------------ | ||
|
||
In addition, the following licenses apply to third party dependencies used within the | ||
Witchcraft Compiler Collection: | ||
|
||
---------------------------------- linenoise --------------------------------------------------- | ||
Copyright (c) 2010-2014, Salvatore Sanfilippo <antirez at gmail dot com> | ||
Copyright (c) 2010-2013, Pieter Noordhuis <pcnoordhuis at gmail dot com> | ||
|
||
All rights reserved. | ||
|
||
Redistribution and use in source and binary forms, with or without | ||
modification, are permitted provided that the following conditions are met: | ||
|
||
* Redistributions of source code must retain the above copyright notice, | ||
this list of conditions and the following disclaimer. | ||
|
||
* Redistributions in binary form must reproduce the above copyright notice, | ||
this list of conditions and the following disclaimer in the documentation | ||
and/or other materials provided with the distribution. | ||
|
||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | ||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR | ||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
------------------------------------------------------------------------------------------------ | ||
|
||
|
||
------------------------------------------ lua ------------------------------------------------- | ||
|
||
Lua is free software distributed under the terms of the MIT license reproduced below; it may be | ||
used for any purpose, including commercial purposes, at absolutely no cost without having to ask | ||
us. The only requirement is that if you do use Lua, then you should give us credit by including | ||
the appropriate copyright notice somewhere in your product or its documentation. For details, | ||
see this : http://www.lua.org/license.html | ||
|
||
Copyright © 1994–2015 Lua.org, PUC-Rio. | ||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software | ||
and associated documentation files (the "Software"), to deal in the Software without | ||
restriction, including without limitation the rights to use, copy, modify, merge, publish, | ||
distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the | ||
Software is furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all copies or | ||
substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING | ||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | ||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
------------------------------------------------------------------------------------------------ | ||
|
||
|
||
=============================================================================== | ||
LuaJIT -- a Just-In-Time Compiler for Lua. http://luajit.org/ | ||
|
||
Copyright (C) 2005-2016 Mike Pall. All rights reserved. | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. | ||
|
||
[ MIT license: http://www.opensource.org/licenses/mit-license.php ] | ||
|
||
=============================================================================== | ||
[ LuaJIT includes code from Lua 5.1/5.2, which has this license statement: ] | ||
|
||
Copyright (C) 1994-2012 Lua.org, PUC-Rio. | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. | ||
|
||
=============================================================================== | ||
[ LuaJIT includes code from dlmalloc, which has this license statement: ] | ||
|
||
This is a version (aka dlmalloc) of malloc/free/realloc written by | ||
Doug Lea and released to the public domain, as explained at | ||
http://creativecommons.org/licenses/publicdomain | ||
|
||
=============================================================================== | ||
|
||
## OpenLibm | ||
|
||
OpenLibm contains code that is covered by various licenses. | ||
|
||
The OpenLibm code derives from the FreeBSD msun and OpenBSD libm | ||
implementations, which in turn derives from FDLIBM 5.3. As a result, it | ||
has a number of fixes and updates that have accumulated over the years | ||
in msun, and also optimized assembly versions of many functions. These | ||
improvements are provided under the BSD and ISC licenses. The msun | ||
library also includes work placed under the public domain, which is | ||
noted in the individual files. Further work on making a standalone | ||
OpenLibm library from msun, as part of the Julia project is covered | ||
under the MIT license. The test files, test-double.c and test-float.c | ||
are under the LGPL. | ||
|
||
## Parts copyrighted by the Julia project (MIT License) | ||
|
||
> Copyright (c) 2011-14 The Julia Project. | ||
> https://github.com/JuliaLang/openlibm/graphs/contributors | ||
> | ||
> Permission is hereby granted, free of charge, to any person obtaining | ||
> a copy of this software and associated documentation files (the | ||
> "Software"), to deal in the Software without restriction, including | ||
> without limitation the rights to use, copy, modify, merge, publish, | ||
> distribute, sublicense, and/or sell copies of the Software, and to | ||
> permit persons to whom the Software is furnished to do so, subject to | ||
> the following conditions: | ||
> | ||
> The above copyright notice and this permission notice shall be | ||
> included in all copies or substantial portions of the Software. | ||
> | ||
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||
> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||
> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||
> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
|
||
## Parts copyrighted by Stephen L. Moshier (ISC License) | ||
|
||
> Copyright (c) 2008 Stephen L. Moshier <steve@moshier.net> | ||
> | ||
> Permission to use, copy, modify, and distribute this software for any | ||
> purpose with or without fee is hereby granted, provided that the above | ||
> copyright notice and this permission notice appear in all copies. | ||
> | ||
> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
> OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
|
||
## FREEBSD MSUN (FreeBSD/2-clause BSD/Simplified BSD License) | ||
|
||
> Copyright 1992-2011 The FreeBSD Project. All rights reserved. | ||
> | ||
> Redistribution and use in source and binary forms, with or without | ||
> modification, are permitted provided that the following conditions are | ||
> met: | ||
> | ||
> 1. Redistributions of source code must retain the above copyright | ||
> notice, this list of conditions and the following disclaimer. | ||
> | ||
> 2. Redistributions in binary form must reproduce the above copyright | ||
> notice, this list of conditions and the following disclaimer in the | ||
> documentation and/or other materials provided with the distribution. | ||
> THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS IS'' AND ANY | ||
> EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
> PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR | ||
> CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||
> EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | ||
> PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||
> PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
> LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
> NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
> SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
> | ||
> The views and conclusions contained in the software and documentation | ||
> are those of the authors and should not be interpreted as representing | ||
> official policies, either expressed or implied, of the FreeBSD | ||
> Project. | ||
|
||
## FDLIBM | ||
|
||
> Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | ||
> | ||
> Developed at SunPro, a Sun Microsystems, Inc. business. | ||
> Permission to use, copy, modify, and distribute this | ||
> software is freely granted, provided that this notice | ||
> is preserved. | ||
|
||
## Tests | ||
|
||
> Copyright (C) 1997, 1999 Free Software Foundation, Inc. | ||
> This file is part of the GNU C Library. | ||
> Contributed by Andreas Jaeger <aj@suse.de>, 1997. | ||
> | ||
> The GNU C Library is free software; you can redistribute it and/or | ||
> modify it under the terms of the GNU Lesser General Public | ||
> License as published by the Free Software Foundation; either | ||
> version 2.1 of the License, or (at your option) any later version. | ||
> | ||
> The GNU C Library is distributed in the hope that it will be useful, | ||
> but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
> Lesser General Public License for more details. | ||
> | ||
> You should have received a copy of the GNU Lesser General Public | ||
> License along with the GNU C Library; if not, write to the Free | ||
> Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
> 02111-1307 USA. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
all: | ||
cd src && make | ||
|
||
clean: | ||
cd src && make clean | ||
rm -f ./bin/* | ||
|
||
install: | ||
cd src && make install | ||
|
||
uninstall: | ||
cd src && make uninstall | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
|
||
|
||
The Witchcraft Compiler Collection | ||
|
||
|
||
|
||
-- Purpose: | ||
|
||
WCC is a collection of reverse engineering tools | ||
taking binary files as an input. | ||
|
||
-- Commands: | ||
|
||
* wcc : The Witchcraft Compiler. | ||
Takes binaries (ELF, PE, ...) as an imput | ||
and creates valid ELF binaries (eg: relocatable | ||
objects or shared libraries) that can be later | ||
compiled and linked with using regular compilers | ||
(eg: gcc/clang). | ||
|
||
* wld : The Witchcraft Linker. | ||
Takes a valid ELF (32/64) binary as an imput | ||
and changes its ELF class to ELF_DYN. | ||
|
||
* wsh : The Witchcraft Loader and Dynamic Linker. | ||
Takes a valid ELF as an input, loads it in its own | ||
the address space, loads dependencies, solves relocations | ||
and execute an embedded (lua) shell or runs a script. | ||
|
||
-- Building and Installing: | ||
|
||
From the directory containing this file, type: | ||
$ make | ||
|
||
Then to install wcc, type: | ||
$ sudo make install | ||
|
||
-- External dependencies: | ||
|
||
Glibc, libbfd, libdl, zlib. | ||
|
||
-- Licences: | ||
|
||
See the file named LICENSE. | ||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#!/bin/bash | ||
# | ||
# wlld : This file is part of the Witchcraft Compiler Collection | ||
# | ||
# Copyright : Jonathan Brossard - endrazine@gmail.com | ||
# | ||
# This file is licensed under the MIT license | ||
# | ||
# version 0.01 Sun Jul 17 19:25:18 PDT 2016 | ||
# | ||
# | ||
|
||
usage () { | ||
echo "Usage: $0 </path/to/bin>" | ||
echo "" | ||
echo " Returns libraries to be passed to gcc to relink this application." | ||
echo "" | ||
exit | ||
} | ||
|
||
getlibs (){ | ||
ldd $1|grep "=> /"|awk '{print $1}'|sed s#"\..*"##|sed s#"^lib"#"-l"#|tr "\n" " " | ||
echo "" | ||
} | ||
|
||
if [ "$1" == "" ] | ||
then | ||
usage | ||
fi | ||
|
||
getlibs $1 | ||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
You can register and binary format so that | ||
all the .wsh scripts will be executed with | ||
/usr/bin/wsh as an interpreter. | ||
|
||
See man update-binfmts | ||
|
||
jonathan@blackbox:~$ cat /proc/sys/fs/binfmt_misc/wsh | ||
enabled | ||
interpreter /usr/bin/wsh | ||
flags: | ||
extension .wsh | ||
jonathan@blackbox:~$ | ||
|
Binary file added
BIN
+3.99 MB
doc/presentations/Jonathan_Brossard_Witchract_Compiler_Collection_Defcon24_2016.pdf
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
This directory contains Proof of Concept code as demonstrated | ||
at the Defcon 24 conference during the talk named | ||
"Introduction to the Wicraft Compiler Collection". | ||
|
||
This code is Copyright 2016 Jonathan Brossard | ||
and licensed under the MIT License. | ||
|
||
August 2016. | ||
|
||
endrazine- | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
CC := gcc | ||
CFLAGS := -W -Wall | ||
LDFLAGS := /usr/sbin/apache2 | ||
|
||
all:: | ||
$(CC) $(CFLAGS) ap2version.c -o ap2version $(LDFLAGS) | ||
|
Oops, something went wrong.