安装qira:
1.http://qira.me/
按照以上完账安装步骤安装:即可
qira1.2年代久远
使用本人github下载:
2.使用 geohot的git网站进行安装:
https://github.com/BinaryAnalysisPlatform/qira
可能存在的错误:
1.Flask-SocketIO 2.9.2 存在错误 降低版本即可解决 如下图所示:
图片.png
Flask-SocketIO got an update (to 2.9.2) which obviously broke qira. You can simply downgrade this module.
Here is how I did it:
source <qira-dir>/venv/bin/activate
pip uninstall Flask-SocketIO
pip install Flask-SocketIO==2.9.1
deactivate
参考网站:
https://github.com/miguelgrinberg/Flask-SocketIO/blob/v1.0/README.md
windows安装没有成功:
存在错误:
-
Cannot open include file: 'inttypes.h': No such file or directory
2.如图所示:
错误1
C:\Users\>C:\Python27\python.exe middleware/qira.py -s ./stack1
C:\Users\\qira_webserver.py:41: ExtDeprecationWarning: Importing flask.ext.socketio is deprecated, use flask_socketio instead.
from flask.ext.socketio import SocketIO, emit
*** program is C:\Users\qira\stack1 with hash 81d1adbda5c66b08eb76d3c1a43960f529337028
Traceback (most recent call last):
File "middleware/qira.py", line 83, in <module>
program = qira_program.Program(args.binary, args.args, qemu_args)
File "C:\Users\middleware\qira_program.py", line 56, in __init__
self.static = static2.Static(self.program)
File "C:\Usersqira/static2\static2.py", line 108, in __init__
loader.load_binary(self)
File "C:\Users\qira\static2\builtin\loader.py", line 84, in load_binary
for nsym, symbol in enumerate(section.iter_symbols()):
File "C:\Python27\lib\site-packages\elftools\elf\sections.py", line 124, in iter_symbols
yield self.get_symbol(i)
File "C:\Python27\lib\site-packages\elftools\elf\sections.py", line 101, in get_symbol
stream_pos=entry_offset)
File "C:\Python27\lib\site-packages\elftools\common\utils.py", line 34, in struct_parse
raise ELFParseError(str(e))
elftools.common.exceptions.ELFParseError: expected 4, found 0
3.error C2011: 'addrinfo' : 'struct' type redefinition
4. from _weakref import (
ImportError: cannot import name '_remove_dead_weakref'
一定不要更新到最新版 否则,你去找解决办法都没有地方。这里python不能跟新到3.5版本.
此问题参考网站:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=852163
https://askubuntu.com/questions/907035/importerror-cannot-import-name-remove-dead-weakref
https://github.com/pyinstaller/pyinstaller/issues/2942
Traceback (most recent call last):
File "/usr/lib/python3.5/py_compile.py", line 6, in <module>
import importlib._bootstrap_external
File "/usr/lib/python3.5/importlib/__init__.py", line 57, in <module>
import types
File "/usr/lib/python3.5/types.py", line 166, in <module>
import functools as _functools
File "/usr/lib/python3.5/functools.py", line 23, in <module>
from weakref import WeakKeyDictionary
File "/usr/lib/python3.5/weakref.py", line 12, in <module>
from _weakref import (
ImportError: cannot import name '_remove_dead_weakref'
解决办法:https://www.questarter.com/q/how-to-install-pip-on-debian-with-python-2-7-27_46560951.html(但是没有什么卵用)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
本来是想尝试在Linux下装ida,目的是现在同一个系统平台下,将ida和qira最大限度的一起使用。
说下本人的安装过程和问题:
1.ida的Linux版本很少,我在网上只找到了ida6.4版本,这里面的qira_linux版本插件不能使用。
插件
这里我猜测:如果找到ida6.6以上的版本,可能能够使用。
其它:
示例1:表示分支(每执行一次就可以产生一个分支,方便运算)
2:内存布局(类似于ida的概况导航栏)
3:控制窗口吧。(你可以在这里输入你想找的任何地址。)
4:反汇编窗口
5:寄存器窗口
6:change list(这个不知道怎么解释,猜测:指令执行的变化状态)
7:strace
8:内存映射
蓝色:change list的标号
灰色:表示分支变化的数字
红色:表示指令地址(iaddr)
暗黄色:表示数据存储的地址(daddr)
在分支窗口上:颜色越深表示函数的深度(表示第几层的函数)
移动蓝色的指令,在分支视图中,你能够看到蓝色点。
红色是通过iaddr的点?????(你在调试的时候,来回已经翻动过的红色代码)
亮黄色是写入daddr里的点????
暗黄色是读取daddr的点????
内存映射区的蓝色光标:表示栈基址
内存映射区的红色光标:表示栈顶指针
qira 介绍:
1.被称为永恒的调试器,没有时间限制。
2.qira使用动态调试的方法,但是他可以像静态调试一样,任意查看上下文代码。
3.qira可以记录整个运行的的过程,这使的我们调试过程变得更加简单。
qira的作用:
- 进行正常调试
- 调试时如果发现内存不如所料,可以返回到之前的状态进行内存状态查看
这一点使得我们可以避免很多反复启动的工作,使得开发expoit更加简单
$ ./qira --help
usage: qira.py [-h] [-s] [-t] [--gate-trace ADDRESS] [--flush-cache] [--pin]
[--host HOST] [--web-port PORT] [--socat-port PORT] [-S]
[--engine ENGINE]
binary [args [args ...]]
Analyze binary. Like "qira /bin/ls /"
positional arguments:
binary path to the binary
args arguments to the binary
optional arguments:
-h, --help show this help message and exit
-s, --server bind on port 4000. like socat
-t, --tracelibraries trace into all libraries
--gate-trace ADDRESS don't start tracing until this address is hit #直到命中他的地址在跟踪
--flush-cache flush all QIRA caches #刷新缓存
--pin use pin as the backend, requires ./pin_build.sh
--host HOST listen address for web interface and socat. 0.0.0.0 by
default
--web-port PORT listen port for web interface. 3002 by default
--socat-port PORT listen port for socat. 4000 by default
-S, --static enable static2
--engine ENGINE static engine to use with static2 (builtin or r2)#这个没理解
两个插件:
./fetchlibs.sh will fetch the libraries for i386, armhf, armel, aarch64, mips, mipsel, and ppc
./tracers/pin_build.sh will install the QIRA PIN plugin, allowing --pin to work
在kali下安装 pin_build.sh ,报如下错误:
无法定位软件包g++-4.9
采用的解决办法是:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
先注释掉原来的kali源,找到一个Ubuntu16.04 的清华源,进行更新。
`
sudo apt-get update
最后执行:
sudo ./pin_build.sh
`
安装成功。
-
若报以下错误:
路径问题
然后使用如下命令:
./tracers/pin_build.sh
注意这里不要使用:
sudo ./pin_build.sh
快捷键:
j -- next invocation of instruction#下一条调用的指令(你选中的指令,下一条出现的地方)
k -- prev invocation of instruction#下一条调用的指令
shift-j -- next toucher of data (下一个触发的数据)(你所选中的下一跳出现的数据)
shift-k -- prev toucher of data( 前一个触发的数据)
m -- go to return from current function#到调用函数的返回位置
, -- go to start of current function#到#到函数的开始的位置
z -- zoom out max on vtimeline
left -- -1 fork 有多个调试程序的分支(可以左右移动对比分支)
right -- +1 fork(对比分支想右移动)
up -- -1 clnum(向上移动指令)---移动的是蓝色的数字序列号
down -- +1 clnum(向下移动指令)
esc -- back(返回)
shift-c -- clear all forks(清除所有的分支)
n -- rename instruction(给指令重命名)
shift-n -- rename data(给数据重命名)---这个的功能包含了上一条,刚觉没什么用。
: -- add comment at instruction(直接跳转到你想要的命令)
shift-: -- add comment at data
g -- go to change, address, or name
space -- toggle flat/function view
p -- analyze function at iaddr (使用-Ss 左下角的框里.用来分析16进制字符结构体,具体实现的什么功能)
c -- make code at iaddr, one instruction(分析16进制字符结构体,看看它实现的是什么指令)
a -- make ascii at iaddr (把一个 iaddr内容变成 ascii (这个不知道是干什么))
d -- make data at iaddr(把 iaddr内容换成数据)(变换只有使用-Ss 左下角的框里才能看见)
u -- make undefined at iaddr(把 iaddr内容换成为未定义的数字,同样也只能在左下角的框里能看见)
Session state
clnum -- selected changelist number
forknum -- selected fork number
iaddr -- selected instruction address
daddr -- selected data address
cview -- viewed changelists in the vtimeline
dview -- viewed window into data in the hexeditor
iview -- viewed address in the static view
max_clnum -- max changelist number for each fork
dirtyiaddr -- whether we should update the clnum based on the iaddr or not
flat -- if we are in flat view
qira+ida:
qira没有静态调试,但是我们使用ida的插件,就对静态分析有一个很好的补充。也可以说是互相补充。
在qira的插件里有以下两个文件:
插件).png我们将(qira_ida66_windows.p64,qira_ida66_windows.plw)放入ida的插件文件夹里。
ida +qira注意:我们启动qira的时候,同时让ida加载所调试的程序,这样我们就能同时,并且联动的调试程序。
2014年的CTF上Geohot搭配使用Qira,在45分鐘內解決了HITCON團隊在3天都破解不了的難題。資安專家Husky表示,Qira的目的為加速除錯程序,因為傳統的工具如GDB,雖然亦可以用於CTF競賽,但是在速度上卻不及Qira
相关为解决问题:
pin问题链接问题:https://github.com/geohot/qira/pull/23 差异问题
链接:https://github.com/geohot/qira/commit/0c584f7fbbc9c7db360a8095f606368810eedd1a
????????????????????????????????????????????????????????????
这个网站很有意思(学习用):
http://www.voidcn.com/article/p-sjicdsjy-wy.html
qira 安装:https://www.techbliss.org/threads/qira.547/
https://libraries.io/github/UNwS/qira
qira交流网站:
https://gitter.im/BinaryAnalysisPlatform/qira/
另外一个qira开发网站:
https://github.com/Escapingbug/qira/
qira相关问题交流解决网站:
https://github.com/BinaryAnalysisPlatform/qira/issues
https://news.ycombinator.com/item?id=11000312
用IDA Pro处理Qira(韩国人写的):
http://namdaehyeon.tistory.com/111
(日本人写的)
http://inaz2.hatenablog.com/entry/2016/03/17/230906
qira简介(做ppt可以用到):
http://gnu-cse.tistory.com/20
http://tribal1012.tistory.com/85
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Ubuntu安装ida pro:
http://blog.csdn.net/pl19920614/article/details/56282996
http://www.cnblogs.com/ryuasuka/p/5493371.html
ida下载网站:
https://down.52pojie.cn/Tools/Disassemblers/
逆向所使用的工具:
https://www.52pojie.cn/forum.php?mod=forumdisplay&fid=4&filter=typeid&typeid=123
网友评论