【下载】分享一个ida脚本,非常方便
标 题: 【下载】分享一个ida脚本,非常方便
作 者:
梁萧
时 间:
2013-09-05,13:32:14
链 接:
http://bbs.pediy.com/showthread.php?t=178365
平日分些一个函数的功能时,为了弄清楚该函数的功能,总是必须先行分析该函数调用的那些子函数的功能,跳转到子函数去分析时,又要先行分析
该子函数调用的那些子函数,如此循环下去,不胜其烦。于是通常的办法都是从该函数的调用树最底层的函数(我称为叶节点函数)开始,一层一层往上分析。
然而找到该函数最终调用的那些叶节点函数又不方便,IDA倒是自带提供了一个交叉引用外部图形工具,可将一个函数的调用树直接画出来,然而画出来的图形
一团糟,很不清晰,所以我想到了用脚本代替,一次性直接找到那些叶节点函数
另一个需求是:一旦找到了那些叶节点函数,比如找到一个叶节点函数sub_44444,该函数除了调用一些知名的库函数外,不再调用其他函数。我习惯将所有找到
的分析完毕的所有叶节点函数更名为xy前缀形式的函数名,这样,下次再重复寻早那个高层函数的所有叶节点函数,这些所有已更名为xy前缀的原叶节点函数
就不再是叶节点了。
脚本使用方法:
将附件中的ida.idc文件放在ida安装目录下的idc目录中,替换即可(你自己先备份一下原来的ida.idc吧),然后启动IDA,将光标放在一个函数内部,按下Shift
+Alt+L快捷键,就可以一次性列举出该函数调用的所有叶节点函数了,当你逐个分析完那些叶节点函数后,更名为xy前缀,然后回到原高层函数内部,再次按快捷键
Shift+Alt+L,这个时候列举出的叶节点函数就是先前那些叶节点函数的上层函数了,如此循环,各个击破,嘿嘿
另外附带的一个功能是:像VC一样,按 Ctrl+[ 快捷键可以一下子跳转到函数开头处,Ctrl+] 快捷键可以一下子跳转到函数结尾处
http://files.cnblogs.com/FCoding/ida%E8%84%9A%E6%9C%AC.rar
【下载】分享一个ida脚本,非常方便的更多相关文章
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- (转)分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- 分享一个SQLSERVER脚本
原文:分享一个SQLSERVER脚本 分享一个SQLSERVER脚本 很多时候我们都需要计算数据库中各个表的数据量很每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tablespac ...
- 向大家分享一个shell脚本的坑
打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中. 先找出其中一台远程机器,查看main进程运行情况 [root@two002 tmp]# ps -ef|grep ...
- 分享一个shell脚本的坑:grep匹配+wc取值 在脚本执行后的结果与手动执行结果不一致
打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中. 先找出其中一台远程机器,查看main进程运行情况 [root@two002 tmp]# ps -ef|grep ...
- 分享一个Python脚本--统计redis key类型数据大小分布
概述 今天主要介绍怎么统计redis key类型数据大小分布. 原理:使用redis命令: scan.pipline.type 和 debug object 来得到 redis key 信息. 脚本 ...
- [2015-11-23]分享一个批处理脚本,创建iis站点及程序池
建站批处理 batch_createSites.bat @echo off rem 以管理员身份执行本脚本,可添加多条call 以建立多个站点 call path\to\createSites.bat ...
- 分享一个刷网页PV的python小脚本
下面分享一个小脚本,用来刷网页PV. [root@huanqiu ~]# cat www.py #!/usr/bin/python# coding: UTF-8import webbrowser as ...
- 分享一个MySQL分库分表备份脚本(原)
分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上 ...
随机推荐
- WORD文档中插入页码的问题
原文链接:http://www.360doc.com/content/11/0216/15/849254_93539436.shtml 一.页码从第二页开始1.选择“插入-页码”,打开“页码”对话框. ...
- 【转】Javascript基本类型和引用类型的区别
根据[转贴]进一步补充 今天明白了一个困扰很久的问题:引用类型和基本类型的区别与联系要明白这个问题,首先需要理解堆栈的概念.那什么又是堆栈,有什么区别和联系呢?堆:首先堆是动态分配的,JVM并不会自动 ...
- (转)WCF中神秘的“8733"端口和“Design_Time_Addresses”
转自:http://blog.csdn.net/bitfan/article/details/4193319 如果使用Visual Studio 2008 SP1开发WCF应用程序时,会发现当使用Vi ...
- 20145232 韩文浩 《Java程序设计》第7周学习总结
教材学习内容总结 就目前来说,即使标注为GMT(格林威治时间),实际上谈到的时间指的是UTC时间. 秒的单位定义时基于TAI.也就是铯原子辐射的振动次数. UTC考虑了地球自转越来越慢而有闰秒修正,确 ...
- mybatis的update操作的几种动态更新
mybatis是我们开发者常用的dao框架,亿轻巧灵活为特征,在crud操作中,动态更新是常用的操作.我搜集了两种动态更新的sql写法,以备日后备用! 方法1: update loan_product ...
- _编程语言_C++_宏定义#define 和 常量const 的区别
C++中有两种定义常量的方式:#define预处理和const关键字 #define 预处理指令 #include <iostream> using namespace std; #def ...
- html5打开摄像头并用canvas模拟拍照 - 转
<video id="video" width="640" height="480" autoplay></video&g ...
- idea2018.2.4的安装激活与热部署插件JRebel的激活方法
去Idea的官网下载如上版本的Idea安装文件 并且在网上搜索下载如下破解工具 放置在相应的Idea安装目录下 然后在Idea中输入激活码 { "licenseId": " ...
- springJDBC和SpringJDBCTemplate解决方案探究
先来看一个纯JDBC的例子,体会一下springJDBC和SpringJDBCTemplate两者的区别 一个Customer类 package com.mkyong.customer.model; ...
- jQuery插件初级练习1
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...