关于 inc2l
来源:互联网 发布:小米网络机顶盒哪款好 编辑:程序博客网 时间:2024/05/16 03:18
inc2l 可以帮助我们将 .inc 文件转换为 .lib 文件。
关于 bug
如果转换成功,会在当前目录下产生一个 kernel32.lib
但是,如果该文件不在其原来的安装目录下,那么转换时将会失败,什么提示也没有。
分析
#1
因为 inc2l 是加壳文件,用 esp定理 将壳脱去。使用 OD dump 出来后,可以再使用导入表恢复工具将导入表修复完整,程序就可以正常运行了。
#2
用 OD 将程序以输入命令的方式打开 inc2l。因为我们知道,如果生成一个 .lib 文件,必定会调用函数 CreateFile、WriteFile 等 API,所以需要先在 CreateFile、WriteFile 这两个 API 中下断点观察。使用快捷键 Ctrl + N,找到 CreateFile 和 WriteFile 下断点。
#3
一路运行下去,发现该程序首先创建了 .asm 文件以及 .def 文件
#4
继续运行观察,在 WriteFile 里面,发现程序在像文件中写入了汇编代码。于是猜测,是否程序是通过编写汇编代码来编译链接生成 .lib 文件的。
#5
为了验证猜测,我们观察 WriteFile 之后的一系列操作,发现在某个地方的见到了许多熟悉的汇编代码
如果此刻我们使用 OD 的查找字符串功能,我们可以找到 编译 和 链接 的命令,但是它的地址是相对地址,这也就解释了为什么该程序必须在安装目录下才能执行。
#6
如果在程序编译前停止调试,打开 asm 文件,可以看到里面是一堆的函数声明
结论:改程序是通过读取 .inc 中的函数名,创建 .asm 以及 .def。并用编译器和连接器来生成 .lib 的。
阅读全文
0 0
- 关于 inc2l
- 给inc2l打个提醒补丁:)
- 关于
- 关于
- 关于++,--
- 关于#
- 关于。。。
- 关于
- 关于......
- 关于
- 关于
- 关于****
- 关于
- 关于!
- 关于++
- 关于
- 关于
- 关于$?
- android 依赖
- VS2017(visual studio 2017)激活码
- mongo java调用示例
- Java 集合深入理解(3):Collection
- Map json list set 对象之间转换
- 关于 inc2l
- opencv学习——画线、圆、文字
- java读取配置文件(.properties)
- 购物车二级列表
- Spark+Parquet分片规则
- Oracle之三大连接讲解
- vue学习笔记04——vue2.0的变化
- kotlin 和java 的对比
- Chrome常用插件和搜索