吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3005|回复: 1
收起左侧

[原创] 用IDC脚本实现hex2chr

[复制链接]
女萝岩 发表于 2020-3-18 20:39
本帖最后由 女萝岩 于 2020-3-18 20:39 编辑

IDA分析程序的过程中可能会遇到如下代码:
codehex.png
指令中的58 50这些hex其实都是字符,指针停留在数字上面并按R键就可以把hex转换为字符。如果要处理的指令数量比较多的话,我们就需要IDC脚本了。

这是我第一次写IDC脚本,一点头绪也没有,只能查看IDA的帮助文件,找到了一些有用的信息。
OpChr(long ea,int n);

这个函数可以把指令中的hex转换为字符,两个参数,第一个参数ea是指令开始的地址,第二个参数n用来指定操作数,0代表转换指令中的第一个操作数,1代表转换指令中的第二个操作数,-1代表指令转换指令中全部操作数。成功则返回1,失败返回0

这里顺便说一下IDC脚本执行的三种方式:
第一种是输出窗口的IDC命令行,适合执行一行脚本。
第二种是File-IDC command,适合执行多行脚本。
第三种是File-Script File,执行一个idc文件,适合功能复杂的脚本。
在输出窗口中的IDC命令行测试了一下:
OpChr(0x1000141F,1)
发现可以实现效果。

接着写一个循环了看下效果。
idcmulticommand.png


按照第二种方式执行IDC脚本,可以完美实现效果。
codechr.png

把IDC脚本写入到一个文件中保存为hex2chr.idc。用第三种方式执行IDC脚本,提示
“Function declaration is expected”的错误,查看IDC的帮助信息,原来是要加一个main函数,加了main函数,发现还是提示这个错误,到ida的官方网站查看示例文档,原来main函数必须是static的。
最后修改成这样就好了。
idcfile.png










免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
jimmyyq + 1 + 1 谢谢@Thanks!
易捷 + 1 + 1 用心讨论,共获提升!
zsky + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wisoft 发表于 2020-3-19 10:23
学到了,都是一行一行按的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 14:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表