首页
社区
课程
招聘
[原创]一个基于x86的C/C++语言反编译c-decompiler
发表于: 2009-10-2 04:42 135551

[原创]一个基于x86的C/C++语言反编译c-decompiler

2009-10-2 04:42
135551

一个基于x86的C/C++语言反编译器的演示版本c-decompiler。
   目前C语言的基本反编译功能已完成,C++部分刚刚开了个头,正在开发中。此版本非常不稳定,仅做演示用!它能很好的反编译自带的56个测试例子,但对于大家自己提供的测试例子可能会有问题!大家若进行测试,建议使用简单例子,可以修改56个例子反编译出来的结果,重新编译生成新的测试例子。
  56个例子中,绝大部分是采用VC2003进行编译的,有debug版本和release版本。VC6,VC2005,VC2008各有4个测试例子,分别是采用向导生成的console和win32程序,分为debug版本和release版本, 测试平台为WinXP。
    发布该演示版本,听听大牛们的看法和意见!
    我的邮箱:kawarchen@gmail.com
    网站: http://www.c-decompiler.com  任何更新会在该网站发布。

    期待大家的意见和技术方面的讨论!

该演示版本有9MB左右,无法上传。
请大家到我的网站上下载:http://www.c-decompiler.com/C-Decompiler.rar


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (220)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
自带的endless崩了,常数传播好像不彻底,比如出现
loc2 = 0;
return (loc2);
2009-10-2 06:15
0
雪    币: 63
活跃值: (17)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
支持一下.
endless在我机器也崩溃了
2009-10-2 08:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
强人,我来看神仙。
2009-10-2 08:48
0
雪    币: 486
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好东西,收藏了!
2009-10-2 09:14
0
雪    币: 104
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
太强了,膜拜牛人
2009-10-2 10:47
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
版主起得很早啊 6:15分! 还是熬通宵?
都很辛苦啊。
endless崩溃问题已经修正,请大家重新到我网站上下载:http://www.c-decompiler.com/C-Decompiler.rar
常数传播不彻底问题,主要是因为传值给eax. eax经常做为函数的返回值,所有我做了些特殊处理。生成的高级语言代码看起来还可以,不影响阅读。
至于其他寄存器的常数传播或者变量传播,都已做好。

另外,请教大家,标准模版库STL的识别,大家有啥好想法。我现在正在做这一块。
初步想法是:对于每个版本的STL,做个类似库签名的操作,然后匹配识别。
有个问题是这样的,库签名可以直接解析库。STL是在编译的时候Include进去的,处理起来比较麻烦。
2009-10-2 17:38
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
8
太强大了,我来膜拜~
2009-10-3 07:15
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
9
看起来很cool 哈哈
2009-10-3 07:59
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
能做成od插件就太好了

就好象ida f5那样
2009-10-3 08:29
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
支持楼上的,膜拜除了whp以外的大牛
2009-10-3 08:37
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
12
另外很多不同版本的要处理完也是个问题
2009-10-3 09:15
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
该反编译器的目标是做成一个独立的反编译器。专攻反编译这一块。
术业专攻,与IDA, Ollydbg直接竞争。
IDA的反编译插件Hex-Rays,反编译出来的结果对着汇编代码来看,有助于理解,但还不是真正的反编译器。
真正的反编译器是输入可执行文件,直接输入与最初源代码相似且功能一样的代码。
还在为这目标努力着。。。。
2009-10-3 09:54
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
该反编译器的目标是做成一个独立的反编译器。专攻反编译这一块。
术业专攻,与IDA, Ollydbg直接竞争。
IDA的反编译插件Hex-Rays,反编译出来的结果对着汇编代码来看,有助于理解,但还不是真正的反编译器。
真正的反编译器是输入可执行文件,直接输入与最初源代码相似且功能一样的代码。
还在为这目标努力着。。。。
2009-10-3 09:54
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
15
不错的工具,是不是做强大以后就要收费了?
发现一个有趣的问题,自己也能反编译自己
2009-10-3 09:58
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
另外很多不同版本的要处理完也是个问题 ??
不知你指的是哪方面?

不同版本的编译器吗?
市场上主流的编译器就那么几个,VC, BC, intel compiler......
而且需要针对不同的编译器做的事情不是很多。
该反编译器可以做成编译器无关的。
2009-10-3 09:59
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
17
不知道逆向大型项目会表现如何,期待楼主的完善,如果有必要我倒是可以出点力气
就是不晓得楼主能否信任我了毕竟我名声不是很好,DM上的朋友可能知道,娃哈哈
QQ:343435488
Email:boywhp@126.com
2009-10-3 11:24
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
膜拜一下...
2009-10-3 11:32
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
19
完全反汇编是停机问题,相当于完全优化,是不可能的。独立backend设计的话,不知道IR怎么定义的?
2009-10-3 11:59
0
雪    币: 79
活跃值: (35)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
20
很感兴趣,只是我很久没用C++了,这几天都用C#
2009-10-3 13:47
0
雪    币: 79
活跃值: (35)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
21
晕,打错字,是几年,不是几天……
2009-10-3 13:48
0
雪    币: 64
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
太强大了,又有心东西了
2009-10-3 14:25
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
只能逆附带的例子啊
自己随便编译一个 就逆不了了

期待完善版
2009-10-3 17:42
0
雪    币: 71
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
24
楼主能否大概的讲讲由汇编转化为C语言??
2009-10-3 19:46
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
做强大后,确实要考虑一些现实问题,毕竟付出的努力总要有些回报才行。
当前版本没有加入任何抗反编译功能,而且给出的这个版本还是debug版。
这是当前这个演示版本还没有能力反编译这么大的一个可执行文件
因此无所谓了。
呵呵,等功能强大后,一些抗反编译功能也得加进去了。
2009-10-3 20:06
0
游客
登录 | 注册 方可回帖
返回
//