Shellcoding Helper
Project description
IntelliCoder
Position independent programming for humans. (WIP.)
Or seriously, automation of position independent code generation from normal C source code.
Current State: It’s a pretotype or a toy serving educational purposes.
Installation
Clone and run.
git clone --depth 1 https://github.com/NoviceLive/intellicoder.git
pip install -r requirements.txt
./ic.py --help
Usable Features
Usage
See ./ic.py --help.
Note that some commands are not usable and some may change without notification.
./ic.py --help Usage: ic.py [OPTIONS] COMMAND [ARGS]... Position Independent Programming For Humans. Options: -V, --version Show the version and exit. -v, --verbose Be verbose. -q, --quiet Be quiet. -d, --database PATH Connect the database. -s, --sense PATH Connect the IntelliSense database. -h, --help Show this message and exit. Commands: add Add data on Linux system calls. build Build (Don't use for the time being). conv Convert binary. export Operate on libraries and exported functions. info Find in the Linux system calls. kinds Operate on IntelliSense kind ids and names. lin Linux. make Make binaries from sources. search Query Windows identifiers and locations. win Windows. winapi Query Win32 API declarations.
Shellcode Extraction & Conversion
See ./ic.py conv --help.
Linux System Call Searching
See ./ic.py info --help.
Examples
$ ./ic.py info fork fork i386 2 long fork(); /* kernel/fork.c */ fork common 57 long fork(); /* kernel/fork.c */ $ ./ic.py info 11 execve i386 11 long execve(const char * filename, const char *const * argv, const char *const * envp); /* fs/exec.c */ long execve(const char * filename, const compat_uptr_t * argv, const compat_uptr_t * envp); /* fs/exec.c */ munmap common 11 long munmap(unsigned long addr, size_t len); /* mm/nommu.c */ long munmap(unsigned long addr, size_t len); /* mm/mmap.c */ $ ./ic.py info 0xb execve i386 11 long execve(const char * filename, const char *const * argv, const char *const * envp); /* fs/exec.c */ long execve(const char * filename, const compat_uptr_t * argv, const compat_uptr_t * envp); /* fs/exec.c */ munmap common 11 long munmap(unsigned long addr, size_t len); /* mm/nommu.c */ long munmap(unsigned long addr, size_t len); /* mm/mmap.c */
Directory Structure
intellicoder/
intellicoder/executables/
A simple abstraction layer of binary executables based on existing predominant libraries such as pyelftools.
Note that it’s incomplete and ad-hoc for the time being.
intellicoder/msbuild/
Despite its name, intellicoder.msbuild does not wrap MSBuild.
Instead, it wraps against MSVC with SDKs (and WDKs) to ease the automation of compilation on Windows.
intellicoder/intellisense/
Collect necessary information, e.g., function prototypes, leveraging the database of IntelliSense.
static/
C library sources and headers.
These are licensed under GNU Lesser General Public License.
recipes/
Examples.
Note thta some are work in progress and may not work as intended.
Copying Conditions
Unless otherwise specified, IntelliCoder is licensed under GNU General Public License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file IntelliCoder-0.5.2.tar.gz
.
File metadata
- Download URL: IntelliCoder-0.5.2.tar.gz
- Upload date:
- Size: 112.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 865798affd0d541a6695e5f91602ac4e9f3b1d9d5dbfbaa28957d5d24142068b |
|
MD5 | 3d3132dda202e6c154eb7d19e848a6fd |
|
BLAKE2b-256 | c05e018b12d8a56705457e14e461b430ada356012332e377df1365e87bfc5a41 |