首页
社区
课程
招聘
谁能帮我写个ida脚本实现把指令var_XX arg_xx替换为十六进制?
发表于: 2012-8-29 11:22 9575

谁能帮我写个ida脚本实现把指令var_XX arg_xx替换为十六进制?

2012-8-29 11:22
9575

因为要扣取的代码过于庞大好几M,使用http://bbs.pediy.com/showthread.php?t=23231中的脚本扣取的汇编代码含有var_XX arg_xx,
需要自己手动替换才能编译,太麻烦了,那位大侠能提供下脚本能够将var_XX arg_xx自动替换为十六进制啊,help me,please。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 6
支持
分享
最新回复 (11)
雪    币: 149
活跃值: (156)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
路过。。。。。。。。

你的意思是这样的?
_text:01007487                 lea     eax, [ebp+var_2C]
_text:0100748A                 push    eax
_text:0100748B                 lea     eax, [ebp+var_30]
_text:0100748E                 push    eax
_text:0100748F                 lea     eax, [ebp+var_34]

----->>>>>
_text:01007487                 lea     eax, [ebp-2Ch]
_text:0100748A                 push    eax
_text:0100748B                 lea     eax, [ebp-30h]
_text:0100748E                 push    eax
_text:0100748F                 lea     eax, [ebp-34h]

idapython写的比较拙。。
from idautils import *
ea = ScreenEA()
address_start = SegStart(ea)
address_end = SegEnd(ea)
i = address_start
while 1:
    if i<address_end:
        OpHex(i,-1)
        print "%X" % i
        i = i+1
    else:
        break
2012-8-29 13:01
0
雪    币: 76
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我在ida6.1下面,File->Python command,然后输入您提供的脚本,但是输入窗口报错

File "<string>", line 12
    break
       ^
IndentationError: unindent does not match any outer indentation level
2012-8-29 13:31
0
雪    币: 149
活跃值: (156)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
将break重新缩进一下。。。
上传的附件:
2012-8-29 13:45
0
雪    币: 76
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢你,脚本执行的挺好。

其实我还想知道,像你们这种大牛怎么学习的idc或者python脚本?
网上资料好少哦,能不能推荐几本关于脚本的教程?
2012-8-29 13:59
0
雪    币: 149
活跃值: (156)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
我不是什么大牛。是你的问题太简单。多看两页书。动一下手就知道了。
2012-8-29 14:10
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
还是有 var 好,给你看清楚那是变量,让你重命名,你这样,还不如在 OD 上看算了
还有你勾出来,可以随便用个编辑器替换 2 次就搞定了,麻烦吗 ?
2012-8-29 14:20
0
雪    币: 76
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
var很多,汇编代码多的时候,替换起来就麻烦了,而且容易出错的
2012-8-29 14:51
0
雪    币: 266
活跃值: (144)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
试一试
重新载入exe, 跳出load a new file的时候,点击kernel options1 ,把 create stack variables去掉,然后分析.
2012-8-29 15:39
0
雪    币: 76
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
你给的方法太好了,太感谢了,我尝试了好多设置都没用,原来这个设置在载入的时候设置的。。。
2012-8-29 20:20
0
雪    币: 363
活跃值: (338)
能力值: ( LV15,RANK:310 )
在线值:
发帖
回帖
粉丝
11
写ida脚本都是看ida的帮助文档,有时候不知道想要的函数是哪个,只能从头一个个看过去!哈哈!
2012-8-29 20:59
0
雪    币: 76
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
嗯,还好,帮助文档不是太大,挨个看还是没问题
2012-8-30 20:55
0
游客
登录 | 注册 方可回帖
返回
//