首先运行程序,发现并没有什么提示且也没有生成对应的lib文件,继而进行调试。
OD加载inc2l出现提示,说明inc2l加壳了。
用PEID查询一下
考虑到inc2l必定会做文件操作,没有脱壳,直接在CreateFile,ReadFile,WriteFile这几个API下断点,还有inc2l.exe使用ml.exe和link.exe,所以在CreateProcess也下断点
......此处略过N个字......
首先这个程序由于是控制台的,还需要带命令行参数,所以调了半天的exe发现没有任何卵用啊。 加上参数后继续调试。 测试参数为:ws2_32.inc
断点断在CreateFileA() 读取参数文件
开始读 创建ws2_32.def文件 创建ws2_32.asm文件
然后开始写文件 接着程序在不停的写文件,所以去掉WriteFile断点 去掉写文件断点后,可以看到程序又开始读参数文件。 总的来说就是读参数文件数据然后写到新建的ws2_32.def和ws2_32.asm中 将读文件断点也去掉,F9继续运行
会发现程序会调用masm32\bin\ml去编译ws2_32.asm文件 然后调用masm32\bin\Link去链接ws2_32.def 和 ws2_32.obj文件 最终程序删除中间文件,只留.lib的结果
1. 总结 程序关键行为: 1) 读取参数文件 2) 创建 参数.def文件和 参数.asm文件 3) 根据参数文件写 参数.def文件和 参数.asm文件 4) 调用masm32\bin\ml去编译 参数.asm文件 5) 调用masm32\bin\link去链接 参数.def 和 参数.obj文件生成.lib文件 6) 删除中间文件
而生成不成功的原因nc2l.exe程序本身的帮助,发现在SETTINGS处已经描述得很清楚
最后将打过补丁的Inc2l送给大家。
第一次发帖啊,我还是小菜鸟,写的帖子实在是烂,大牛飘过啊~
|