1、IDA Pyhon介绍

 IDA Python是IDA6.8后自带插件,可以使用Python做很多的辅助操作,非常方便的感觉。

2、IDA Python安装

 从github上IDAPython项目获取跟自己电脑IDA、Python对应的版本。

项目地址:https://github.com/idapython

IDA Python手册:https://www.hex-rays.com/products/ida/support/idapython_docs/

我的IDA是6.8,Python是2.7版本。

IDA Python安装的说明:

1. Install 2.6 or 2.7 from http://www.python.org/
2. Copy the whole "python" directory to %IDADIR%
3. Copy the contents of the "plugins" directory to the %IDADIR%\plugins\
4. Copy "python.cfg" to %IDADIR%\cfg

翻译:

1、从http://www.python.org/安装Python 2.7版本。

2、复制安装包内的python目录到%IDADIR%(IDA)目录,%IDADIR%\python

3、复制安装包内的plugins目录到%IDADIR%(IDA)目录,%IDADIR%\plugins

4、复制安装包内的"python.cfg" 到 %IDADIR%\cfg内

3、使用方法

3.1、快捷键使用

  • 运行IDA脚本文件: (Alt-F7)
  • 单行执行Python (Ctrl-F3)
  • 查看现有的IDA脚本文件 (Alt+F9)

3.2、测试代码

  网上找到的Python代码是拿printf做的测试,可是我这边好像没有能解析printf函数,所以我用了IsProcessorFeaturePresent函数做示例。

单个函数测试:

#coding:utf-8
from idaapi import *
danger_funcs = ["IsProcessorFeaturePresent"] # 需要寻找的函数名
for func in danger_funcs:
addr = LocByName( func )
if addr != BADADDR:
#找到交叉引用的地址
cross_refs = CodeRefsTo( addr, 0 )
print "Cross References to %s" % func
print "-------------------------------"
for ref in cross_refs:
print "%08x" % ref
# 函数的颜色为红色
SetColor( ref, CIC_ITEM, 0x0000ff)

多个函数需要识别的时候就可以把代码写得更加规范一些。


#
## another way to search all not safe functions
#
#coding:utf-8
from idaapi import * # 设置颜色
def judgeAduit(addr):
'''
not safe function handler
'''
MakeComm(addr,"### AUDIT HERE ###")
SetColor(addr,CIC_ITEM,0x0000ff) #set backgroud to red
pass # 函数标识
def flagCalls(danger_funcs):
'''
not safe function finder
'''
count = 0
for func in danger_funcs:
faddr = LocByName( func )
if faddr != BADADDR:
# Grab the cross-references to this address
cross_refs = CodeRefsTo( faddr, 0 )
for addr in cross_refs:
count += 1
Message("%s[%d] calls 0x%08x\n"%(func,count,addr))
judgeAduit(addr) if __name__ == '__main__':
'''
handle all not safe functions
'''
print "-------------------------------"
# 列表存储需要识别的函数
danger_funcs = ["strcpy","sprintf","strncpy"]
flagCalls(danger_funcs)
print "-------------------------------"

4、测试效果

5、参考链接

  • IDAPython安装 | All Right

 http://spd.dropsec.xyz/2016/10/05/IDAPython安装/

  • IDAPython脚本之收集函数的调用信息 | All Right

 http://spd.dropsec.xyz/2016/10/16/IDAPython脚本之收集函数的调用信息/

  • IDAPython学习(一)

 http://www.cnblogs.com/blacksunny/p/7214645.html

  • 11 IDAPYTHON --- IDA 脚本

 https://wizardforcel.gitbooks.io/grey-hat-python/content/44.html

【逆向工具】IDA Python安装与使用的更多相关文章

  1. python安装包工具pip的安装

    官方的安装帮助页面:http://pip.readthedocs.org/en/latest/installing.html windows: 下载代码get-pip.py, 运行该代码, 这个代码会 ...

  2. python入门:python包管理工具pip的安装

    pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品. distribute是setuptools的取代(Setuptools包后期不再维护了),pip是e ...

  3. $python包管理工具pip的安装和使用

    pip是python的一个非常好用的包管理工具,可以用来很方便地安装和管理各种三方库,本文对其基本用法进行介绍. 安装pip Windows系统上安装 python 2.7.9及以上版本的window ...

  4. 逆向中静态分析工具——IDA初学者笔记之字符串分析

    逆向中静态分析工具——IDA初学者笔记之字符串分析 程序中往往包含很多字符串资源,这些资源存在于PE文件的rdata段,使用IDA反编译后,可以查找到这些字符串, 逆向破解程序通常需要一个突破点,而这 ...

  5. 逆向中静态分析工具——IDA初学者笔记

    逆向中静态分析工具——IDA初学者笔记 //****************************************************************************** ...

  6. 手把手从python安装到setuptools、pip工具安装

    一.python安装1.基础开发库 apt-get install gccapt-get install openssl libssl-dev 2.安装数据库和开发库 apt-get install ...

  7. 转载 Python 安装setuptools和pip工具操作方法(必看)

    本文章转载自 脚本之家 http://www.jb51.net  感谢! setuptools模块和pip模块是python进行第三方库扩展的极重要工具,例如我们在需要安装一些爬虫或者数据分析的包时就 ...

  8. 如何在windows下的Python开发工具IDLE里安装其他模块?

    以安装Httplib2模块为例 1 下载模块 到 “https://code.google.com/p/httplib2/” 下载一款适合你的压缩包“httplib2-0.4.0.zip” 2 解压下 ...

  9. PJSIP 自动化测试工具安装 Python安装

    Python安装,记录步骤如下 1.下载PythonIDE安装包 到官网 https://repo.continuum.io/archive/下载需要的版本,选择的Anaconda版本3的,当然也可以 ...

随机推荐

  1. 2017-2018 第一学期201623班《程序设计与数据结构》-第9&10周作业问题总结

    一.作业内容 第8周作业 http://www.cnblogs.com/rocedu/p/7484252.html#WEEK08 第9周作业 http://www.cnblogs.com/rocedu ...

  2. ios UnitTest 学习笔记

    一.运行第一个单元测试: 1.在Xcode 5中新建一个工程默认自带一个单元测试的文件夹,IDE自动生成了一个实现XCTestCase的.m文件,里面有一个失败测试(早期版本中实现的是SenTestC ...

  3. vs2013的安装及单元测试

    一:安装 废了九牛二虎之力,VS终于安装成功,可喜可贺,期间经历了各种风风雨雨,什么安装完少东西啊,重新安装又提示已经安装啊,卸载卸不干净啊,最后只能还原系统重新安装,最后终于成功了,这辈子没见过这么 ...

  4. 【壹拾壹周】final分数分配

    组名: 新蜂 组长: 武志远 组员: 宫成荣 谢孝淼 杨柳 李峤 项目名称: java俄罗斯方块NEO 发布时间:12.3 git地址:https://git.coding.net/Boxer_/ho ...

  5. Python爬虫利器:BeautifulSoup库

    Beautiful Soup parses anything you give it, and does the tree traversal stuff for you. BeautifulSoup ...

  6. Python爬虫:新浪新闻详情页的数据抓取(函数版)

    上一篇文章<Python爬虫:抓取新浪新闻数据>详细解说了如何抓取新浪新闻详情页的相关数据,但代码的构建不利于后续扩展,每次抓取新的详情页时都需要重新写一遍,因此,我们需要将其整理成函数, ...

  7. information_schema系列十一

    1: INNODB_CMP 和INNODB_CMP_RESET 这两个表存储的是关于压缩INNODB信息表的时候的相关信息, Column name Description PAGE_SIZE Com ...

  8. 学习 TTreeView [1] - TTreeNodes、TTreeNode 与 Items、Items.Count、Items.Clear

    填写 TTreeView 的内容一般是这样开始的(下图), 不过我觉得最好习惯用动态建立. 打个比方: 譬如 TreeView 是一个军营的"营部"! 这里会有营长.连长.排长.班 ...

  9. BZOJ 4242 水壶(BFS建图+最小生成树+树上倍增)

    题意 JOI君所居住的IOI市以一年四季都十分炎热著称. IOI市是一个被分成纵H*横W块区域的长方形,每个区域都是建筑物.原野.墙壁之一.建筑物的区域有P个,编号为1...P. JOI君只能进入建筑 ...

  10. 以太坊 链私有链环境搭建(windows)

    摸索以太坊区块链技术几个月了.最近打算逐步的把自己学到的东西和大家分享一下.在阅读本文之前,希望大家能对区块链的概念能有所了解.这样操作过程中的环节理解更深入.下面开始进入准备.因为本次是window ...