给inc2l打个提醒补丁:)

用过RadASM的都知道,有时候会碰到一个较为莫名的问题,在include文件下利用inc2l生成一个对应的lib文件不成功且没有任何提示,性子急的人就容易以为程序本身出了问题,其实这个是程序在默认情况下的处理不给力的原因。这里可以分析一下inc2l,获取一些有用的信息:

图2.1分析前问题重现

 

脱壳后利用OD载入进行调试后,通过分析可知该程序必然要进行文件的创建操作(因为lib文件的生成需要中间文件的支持【当然不排除变态做法,但考虑此工具的性质而言可能性微乎其微】),因此利用创建文件的API,CreateFileA,通过回溯查找的方法可以定位到关键处(过程省略)。利用API函数,定位到关键要点处如下:

图2.2 获取环境变量处


    图2.3 首先创建出两个空文件kernel32.asm及kernel32.def,然后在接下来的处理流程中进行写文件操作,为将数据写入作为生成lib文件的准备。

 


图2.4 当没有环境变量的时候,跳转到默认设置处

而默认的地方其路径为:\masm32\bin\........,路径为相对路径且缺少盘符,由于该工具依赖于link的具体路径,且与RadASM相关即RadASM的安装目录相关,因此作为修正来说,最好打一个提醒补丁为较好的解决方案。当然如果不嫌麻烦可以在用户没有设置好环境变量的情况下,自己Patch出一个弹出输入框让用户自己指定出link所在的位置,同时设置环境变量mdir。 


程序最后会将生成的中间文件删除

 

图 2.5 程序删除中间文件

最后我们回头inc2l.exe程序本身的帮助,发现在SETTINGS处人家已经说得很清楚了


图 2.6 inc2l的帮助说明

通过图2.6我们可以很清楚地知道原因所在,看来仔细阅读程序帮助也是很有必要的!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值