mirror of
https://github.com/geohot/qira
synced 2024-12-27 06:19:41 +03:00
thinking about release
This commit is contained in:
parent
ab65e61994
commit
81d9b2cc4c
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
|
bin/
|
||||||
web/.meteor/local
|
web/.meteor/local
|
||||||
.*.swp
|
.*.swp
|
||||||
tests/a.out
|
tests/a.out
|
||||||
|
58
brelease.sh
Executable file
58
brelease.sh
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#rm -rf bin/
|
||||||
|
#mkdir -p bin/
|
||||||
|
|
||||||
|
# requires objdump
|
||||||
|
# sudo apt-get install python-pip
|
||||||
|
# sudo pip install pymongo
|
||||||
|
# writable /tmp
|
||||||
|
|
||||||
|
# aim for a 2mb distributable
|
||||||
|
# 100kb for the python, 100kb for the web, 200kb for the ida plugin(static), 1mb for qira-qemu
|
||||||
|
# +the meteor install size
|
||||||
|
# consider smaller packaging for the python
|
||||||
|
|
||||||
|
# hmm can we package as a .deb for ubuntu?
|
||||||
|
|
||||||
|
# perhaps instead of this bundle we just install meteor
|
||||||
|
# curl https://install.meteor.com | /bin/sh
|
||||||
|
# or preship this file in the tarball?
|
||||||
|
# the advantage of this over the bundle is it ships mongo
|
||||||
|
cd web
|
||||||
|
echo "bundling webapp"
|
||||||
|
#mrt bundle ../bin/qira_web.tar.gz
|
||||||
|
cd ../
|
||||||
|
|
||||||
|
# built for ida 6.6
|
||||||
|
# perhaps build for older IDA as well, ie 6.1
|
||||||
|
# and mac + windows
|
||||||
|
# fairly standard deps + libcrypto, libssl, libz and libida
|
||||||
|
cd ida_plugin
|
||||||
|
echo "building ida plugin"
|
||||||
|
./build.sh
|
||||||
|
cp qira.plx ../bin/qira_ida66_linux.plx
|
||||||
|
strip ../bin/qira_ida66_linux.plx
|
||||||
|
cd ../
|
||||||
|
|
||||||
|
# fairly standard deps + librt, libglib, libpcre
|
||||||
|
echo "copying qemu"
|
||||||
|
cp qemu/qemu-latest/i386-linux-user/qemu-i386 bin/qira-i386
|
||||||
|
strip bin/qira-i386
|
||||||
|
|
||||||
|
# package up the python, hopefully this includes pymongo driver
|
||||||
|
# hmm, it doesn't, user will need to install
|
||||||
|
#cd bin
|
||||||
|
#rm -rf qira_middleware
|
||||||
|
#mkdir -p qira_middleware
|
||||||
|
#cd qira_middleware
|
||||||
|
#~/build/PyInstaller-2.1/pyinstaller.py ../../scripts/qira_middleware.py
|
||||||
|
#cd dist/qira_middleware
|
||||||
|
#tar zcvf ../../../qira_middleware.tar.gz *
|
||||||
|
#cd ../../
|
||||||
|
#cd ../../
|
||||||
|
|
||||||
|
# *** startup ***
|
||||||
|
# the meteor and the middleware should always be running(fix the hang bug)
|
||||||
|
# launch both in upscript with qira-server in one window. make the teardown nice
|
||||||
|
# then you run qira-i386 <binary>, we need to hack in the -singlestep arg
|
||||||
|
|
3
deps.sh
3
deps.sh
@ -1,7 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
sudo pip install pymongo
|
sudo pip install pymongo
|
||||||
curl -k https://install.meteor.com | /bin/sh
|
#sudo easy_install pymongo
|
||||||
|
curl https://install.meteor.com | /bin/sh
|
||||||
|
|
||||||
if [ ! -d qemu/qemu-latest ]; then
|
if [ ! -d qemu/qemu-latest ]; then
|
||||||
rm -rf qemu
|
rm -rf qemu
|
||||||
|
2
go.sh
2
go.sh
@ -7,7 +7,7 @@ BIN=../tests/ctf/ezhp
|
|||||||
#SRC=../tests/hello.c
|
#SRC=../tests/hello.c
|
||||||
#SRC=../tests/algo.c
|
#SRC=../tests/algo.c
|
||||||
|
|
||||||
if [ $SRC != "" ]; then
|
if [ "$SRC" != "" ]; then
|
||||||
cd tests
|
cd tests
|
||||||
#gcc -m32 -nostdlib -static -g $src
|
#gcc -m32 -nostdlib -static -g $src
|
||||||
gcc -m32 -static -g $SRC
|
gcc -m32 -static -g $SRC
|
||||||
|
@ -6,5 +6,9 @@ IDAROOT=~/ida-6.6
|
|||||||
|
|
||||||
g++ template.cpp -m32 -fPIC -D__IDP__ -D__PLUGIN__ -c -D__LINUX__ -I$SDKROOT/include
|
g++ template.cpp -m32 -fPIC -D__IDP__ -D__PLUGIN__ -c -D__LINUX__ -I$SDKROOT/include
|
||||||
g++ -m32 --shared template.o -L$IDAROOT -lida -o qira.plx libwebsockets.a -lcrypto -lz -lssl -lpthread
|
g++ -m32 --shared template.o -L$IDAROOT -lida -o qira.plx libwebsockets.a -lcrypto -lz -lssl -lpthread
|
||||||
cp qira.plx $IDAROOT/plugins
|
sha1sum qira.plx
|
||||||
|
if [ "$(diff qira.plx $IDAROOT/plugins/qira.plx)" != "" ]; then
|
||||||
|
echo "copying plugin"
|
||||||
|
cp qira.plx $IDAROOT/plugins
|
||||||
|
fi
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ static int callback_qira(struct libwebsocket_context* context,
|
|||||||
case LWS_CALLBACK_ESTABLISHED:
|
case LWS_CALLBACK_ESTABLISHED:
|
||||||
// we only support one client
|
// we only support one client
|
||||||
gwsi = wsi;
|
gwsi = wsi;
|
||||||
msg("QIRA connected\n");
|
msg("QIRA web connected\n");
|
||||||
break;
|
break;
|
||||||
case LWS_CALLBACK_RECEIVE:
|
case LWS_CALLBACK_RECEIVE:
|
||||||
char *strin = (char *)in;
|
char *strin = (char *)in;
|
||||||
|
@ -69,14 +69,16 @@ Meteor.startup(function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// shouldn't be here
|
// consider a better way to do this
|
||||||
var X86REGS = ['EAX', 'ECX', 'EDX', 'EBX', 'ESP', 'EBP', 'ESI', 'EDI', 'EIP'];
|
var X86REGS = ['EAX', 'ECX', 'EDX', 'EBX', 'ESP', 'EBP', 'ESI', 'EDI', 'EIP'];
|
||||||
|
var REGS = X86REGS;
|
||||||
|
|
||||||
stream.on('getregisters', function(clnum) {
|
stream.on('getregisters', function(clnum) {
|
||||||
var ret = [];
|
var ret = [];
|
||||||
for (var i = 0; i < X86REGS.length; i++) {
|
for (var i = 0; i < REGS.length; i++) {
|
||||||
var val = map_getbelow(regs[i*4], clnum);
|
var val = map_getbelow(regs[i*4], clnum);
|
||||||
if (val !== undefined) {
|
if (val !== undefined) {
|
||||||
ret.push({"name": X86REGS[i], "address": i*4, "value": val});
|
ret.push({"name": REGS[i], "address": i*4, "value": val});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stream.emit("registers", ret);
|
stream.emit("registers", ret);
|
||||||
|
Loading…
Reference in New Issue
Block a user