2015/10/28

五年養成計畫

我現在都已經讀到大學四年級了

開始要找實習的時候才發覺到自己的履歷看起來一點都不亮眼

拜讀了這位大神的部落格後決定要開始振作

http://lucida.me/blog/on-learning-algorithms/

以前大學總是渾渾噩噩的

什麼東西都是東摸西摸

覺得拿個及格分數就很滿意了

從現在大學四年級開始到碩一再加上三年的研替

總共五年的時間能夠重整一下自己的基礎

以下是書單(會不定時的更新):

程式設計師的自我修養

http://www.books.com.tw/products/0010456858


Trace QIRA(1)-directory tree and package

Some tools


Installation


  • Now version is v1.1
  • install.sh will install qira
  • qemu_build.sh will install qemu
  • fetchlibs.sh will fetch the libraries for i386, armhf, armel, aarch64, mips, mipsel, and ppc
  • pin_build.sh will install the QIRA PIN plugin, allowing –pin to work

Debian Packages


  • build-essential : essential to build Debian packages
  • python-dev python-pip : Python
  • debootstrap : a tool which will install a Debian base system into a subdirectory of another
  • debian-archive-keyring : key for GnuPG
  • libjpeg-dev : C library for reading and writing JPEG images
  • zlib1g-dev : zlib is a library implementing the deflate compression method found in gzip and PKZIP
  • unzip : tool to decompress zip file
  • wget : network utility to retrieve files from the Web using http and ftp
  • graphviz : Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks.
  • curl : command line tool for transferring files with URL syntax
  • Capstone : disassembly framework
  • Virtualenv : tool to create isolated Python environments

Python Packages


  • Six : Python 2 and 3 Compatibility Library
  • html : simple, elegant HTML, XHTML and XML generation
  • flask-socketio : Flask applications access to low latency bi-directional communications between the clients and the server
  • pillow : Python Imaging Library
  • pyelftools : Library for analyzing ELF files and DWARF debugging information
  • socketIO-client : socket.io client library for Python
  • Pydot : full interface to create handle modify and process graphs in Graphviz’s dot language
  • Ipaddr : library for working with IP addresses
  • Capstone : disassembly framework
  • Hexdump : view/edit your binary with any text editor
  • Nose : nose extends unittest to make testing easier
  • ./qiradb : geohot’s python module

Language used


I use cloc to calculate code.

http://cloc.sourceforge.net/

cloc

  • Mainly use C, Python, Javascript
  • C is used to qemu and disassemble
  • Python is for the website
  • Web framework use flask
  • Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions

http://flask.pocoo.org/

  • Website use Flask-SocketIO to communicate
  • Flask-SocketIO gives Flask applications access to low latency bi-directional communications between the clients and the server.
  • Client-side application can use javascript library to establish a permanet connection to the server

http://flask-socketio.readthedocs.org/en/latest/

Directory Tree


  • extra
    • qiradb
    • website(qira.me)
  • ida
    • Ida plugin
  • middleware
    • 主要放置.py
  • qiradb
    • 以C++寫成的資料結構
  • qira_tests
    • Test case
  • releases
    • qira各版本
  • static2
    • recovering static structure
  • tests_auto
    • auto tests
  • tests_manual
    • tests manual
  • tracers
    • pin
    • angr
    • qemu
  • web
    • Web application client
    • Css js

QIRA introduction

image from qira.me website


  • QIRA is timeless debugger
  • Fullname is QEMU Interactive Runtime Analyser
  • QIRA was initially developed at Google by George Hotz. Work continues at CMU.

QIRA website :

http://qira.me/

QIRA github :

https://github.com/BinaryAnalysisPlatform/qira

Usage

Usage

How to make ida plugin work

  • Testing environment is on Windows 10 enterprise with Vmware workstation Pro 12
  • Install qira 1.1 on Ubuntu 15.10 and port-forwarding 3002 port
  • Quick install qira and google-chrome can by following script
- git clone https://github.com/bananaappletw/Ubuntu
cd Ubuntu/
./install.sh
  • And copy two files qira_ida66_windows.p64, qira_ida66_windows.plw from qira/ida/bin/ to ida pro plugins/
  • Open Chrome and IDA PRO on windows 10
  • It should work like this

ida plugin