标 题: 【下载】分享一个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脚本,非常方便的更多相关文章

  1. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  2. (转)分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  3. 分享一个SQLSERVER脚本

    原文:分享一个SQLSERVER脚本 分享一个SQLSERVER脚本 很多时候我们都需要计算数据库中各个表的数据量很每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tablespac ...

  4. 向大家分享一个shell脚本的坑

    打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中. 先找出其中一台远程机器,查看main进程运行情况 [root@two002 tmp]# ps -ef|grep ...

  5. 分享一个shell脚本的坑:grep匹配+wc取值 在脚本执行后的结果与手动执行结果不一致

    打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中. 先找出其中一台远程机器,查看main进程运行情况 [root@two002 tmp]# ps -ef|grep ...

  6. 分享一个Python脚本--统计redis key类型数据大小分布

    概述 今天主要介绍怎么统计redis key类型数据大小分布. 原理:使用redis命令: scan.pipline.type 和 debug object 来得到 redis key 信息. 脚本 ...

  7. [2015-11-23]分享一个批处理脚本,创建iis站点及程序池

    建站批处理 batch_createSites.bat @echo off rem 以管理员身份执行本脚本,可添加多条call 以建立多个站点 call path\to\createSites.bat ...

  8. 分享一个刷网页PV的python小脚本

    下面分享一个小脚本,用来刷网页PV. [root@huanqiu ~]# cat www.py #!/usr/bin/python# coding: UTF-8import webbrowser as ...

  9. 分享一个MySQL分库分表备份脚本(原)

    分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上 ...

随机推荐

  1. crontab使用环境变量

    两种方式: 1)直接在crontab中定义变量,如: A=123 * * * * * echo $A > /tmp/a.txt 注意在定义变量时不能使用$引用其它变量,如下面的做法错误: A=1 ...

  2. Java EE JAR包的说明

    在java ee的开发中,jar文件是工程的基础,下面转载了网上兄弟一篇文章,简单介绍了一下,java ee中常用的jar文件的说明: activation.jar 与javaMail有关的jar包, ...

  3. 添加全局函数$.extend和对象方法$.fn

    ## $(function () { $.fn.shadow = function (opts) { return this.each(function () { var defaults = { / ...

  4. 1.3currentThread()方法

    该方法可返回代码段正在被哪个线程调用的信息 package com.cky.test; /** * Created by chenkaiyang on 2017/12/2. */ public cla ...

  5. gcc和vs在c的一些区别

    1.switch中每个标签后面的命令在gcc中需要{}括起来以指明作用域. 2._itoa是非标准的c和c++扩展函数,在linux下可以使用sprintf(string,   "%d &q ...

  6. web-day12

    第12章WEB12-JSP&EL&JSTL篇 今日任务 商品信息的显示 教学导航 教学目标 掌握JSP的基本的使用 掌握EL的表达式的用法 掌握JSTL的常用标签的使用 教学方法 案例 ...

  7. POJ3176 Cow Bowling 2017-06-29 14:33 23人阅读 评论(0) 收藏

    Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 19173   Accepted: 12734 Des ...

  8. Scala_基本语法

    基本语法 声明值和变量 Scala有两种类型的变量: val:是不可变的(变量的引用不可变),在声明时就必须被初始化,而且初始化以后就不能再赋值: var:声明的时候需要进行初始化,初始化以还可以再对 ...

  9. [kuangbin]树链剖分A - Aragorn's Story

    比较水的题了,比模板题还要简单一点 理解了这个结构,自己打出来的,但是小错误还是很多,越来越熟练吧希望 错误函数updata,updata_lca,query||错误地方区间往下递归的时候是left ...

  10. SRM471

    250pt: 题意:定义一种函数f(x),表示x不断/2直到出现非素数的操作次数.现在给定N,D.求X<= N, 并且f(x) >= D的最大的数 思路:直接先弄一个1000w以内的质数表 ...