[原创]IDA搜索立即数
2022-6-23 15:19:0 Author: bbs.pediy.com(查看原文) 阅读量:9 收藏

[原创]IDA搜索立即数

2022-6-23 15:19 8271

最近在分析一些应用的错误码处理,想通过接口返回的错误码找到应用中的处理方式
1.IDA直接搜索立即数
大多数情况下,立即数的搜索都可以直接使用ALT+B进行立即数的搜索
例如:
图片描述
上图这种情况
直接ALT+B
图片描述
即可得到结果
图片描述
在搜索的时候记得把汇编视图的滚动条拉到最顶
2.IDApy脚本搜索立即数
在下图这种情况下
图片描述
一个立即数被拆分成两个立即数位移后相加的情况下,可以采用idapython脚本进行搜索

1

2

3

4

5

6

7

8

9

10

11

12

13

import idautils

import idaapi

search_number = 0xFFFD;

for func in idautils.Functions():

    flags = idc.GetFunctionFlags(func)

    if flags & FUNC_LIB or flags & FUNC_THUNK:

        continue

    dism_addr = list(idautils.FuncItems(func))

    for curr_addr in dism_addr:

        if idc.GetOpType(curr_addr,0) == 5 and (idc.GetOperandValue(curr_addr,0) == search_number):

            print hex(curr_addr)

        if idc.GetOpType(curr_addr,1) == 5 and (idc.GetOperandValue(curr_addr,1) == search_number):

            print hex(curr_addr)

idc.GetOpType(addr, index)函数用来判断指令类型, 返回值为5则为立即数
idc.GetOperandValue(addr, index)函数用来获取指令的值
上面的脚本遇上
图片描述
这种伪指令就歇菜了 这里去读这个=XXX的值只能读到他的地址 其实可以读地址再去读地址对应的值,不过ALT+B能解决我就懒得写脚本找了
关于idapython的教程可以看这个
IDAPython基础教程

看雪招聘平台创建简历并且简历完整度达到90%及以上可获得500看雪币~

最新回复 (5)

雪    币: 692

活跃值: 活跃值 (1552)

能力值:

( LV2,RANK:10 )

在线值:

发帖

回帖

粉丝

kakasasa 活跃值 2022-6-23 19:02

2

1

ALT+I

雪    币: 33

能力值:

( LV1,RANK:0 )

在线值:

发帖

回帖

粉丝

mb_kycmtvwm 活跃值 2022-6-23 20:47

3

0

kakasasa ALT+I

感谢大佬指点 

雪    币: 2082

活跃值: 活跃值 (1205)

能力值:

( LV12,RANK:220 )

在线值:

发帖

回帖

粉丝

scz 活跃值 5 2022-6-24 10:48

4

0

你这个脚本是在比较老的IDA中测的吧,现在这两个函数是

idc.get_operand_type
idc.get_operand_value

雪    币: 318

能力值:

( LV1,RANK:0 )

在线值:

发帖

回帖

粉丝

天会晴心会暖 活跃值 2022-6-25 13:57

5

0

scz 你这个脚本是在比较老的IDA中测的吧,现在这两个函数是 idc.get_operand_type idc.get_operand_value

是的 在7.0的ida中跑的

雪    币: 4984

活跃值: 活跃值 (5331)

能力值:

( LV17,RANK:787 )

在线值:

发帖

回帖

粉丝

无名侠 活跃值 12 2022-6-30 11:33

6

0

搜索立即数推荐用 FindFunc 插件,支持多个特征立即数组成规则
https://github.com/FelixBer/FindFunc
例如搜索 Lua 的指令 handler
```
RuleImmediate True False 23
RuleImmediate True False 14
RuleImmediate True False 10
```

游客

登录 | 注册 方可回帖

返回


文章来源: https://bbs.pediy.com/thread-273406.htm
如有侵权请联系:admin#unsafe.sh