首页
社区
课程
招聘
[注意]交互式C/C++反编译云服务平台创业团队招募实习生
发表于: 2009-11-23 12:10 11663

[注意]交互式C/C++反编译云服务平台创业团队招募实习生

2009-11-23 12:10
11663
公司名称:
职位名称:
招聘人数:
工作地点:
薪水待遇:*
职位描述:
联系人:
联系电话:
电子邮箱:
QQ/MSN:
公司网址:
公司介绍:

其它信息:

大家好,
    上海交通大学软件学院的“交互式C/C++反编译云服务平台”项目在中科院计算所第二
届技术创新大赛中获得第一名。
关于该大赛的详细情况请参考大赛官方网站:www.ictmaster.org

    交大软件学院也有该赛况的报道:http://www.se.sjtu.edu.cn/sites/se/gb/p1213_1.htm?lang=gb&newsid=467

    关于该项目的详细介绍可以参考看雪安全论坛链接:http://bbs.pediy.com/showthread.php?t=98809

    另外,该反编译的原型在以下网站中提供下载,欢迎试用:
http://www.c-decompiler.com/
http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/C-Decompiler.shtml
http://download.cnet.com/C-Decompiler/3000-2218_4-10969943.html?tag=mncol
http://www.brothersoft.com/c-decompiler-294839.html

项目简介:
    该项目最终形式是一个交互式的C/C++反编译器。它能够从可执行文件反编译成C/C++
源代码。 该C/C++源代码在功能上与最初的源代码是一致的。 它采用了很多先进的算法和
技术,对实习生来说是一个很好的学习平台。

    本项目已经获得首轮投资基金,将于12月中下旬入驻浦东张江孵化器基地,孵化时间
为6个月。争取6个月后孵化成功,获得包括张江集团在内的第二轮风投。

    为加速项目研发,现面向上海地区高校招聘研二实习生2名,大四实习生3名从事项目相关开发
工作。实习津贴:大四1200元/月,研二1800元/月。提供酒店式住宿,住宿地点在张江高
科技园旁边。

    激情创业 成就梦想,这里给你提供一个尽展抱负的平台!
    反编译器是程序分析,安全,逆向等领域的神兵利器!到目前为止,国内外市场上尚未出现
一款商业化的反编译器。本项目力争成为市场上第一款商业化的反编译器,独享市场这块大蛋糕!
     它得到了交大嵌入式实验室的全力支持,并获得了中科院、张江等方面的创投支持.现在处于孵化阶段,万事俱备,只欠东风,迫切需要有志之士加盟。
    “会当凌绝顶 一览众山小”! 来吧,这是你圆梦的平台!表现优秀者将获得项目股份!

要求:
    1. 有激情,勤奋刻苦。
    2. 一周能实习5个工作日,实习期为6个月。(优秀的研一,大三同学也可以参加,只
要你有充足的时间)
    3. 熟悉x86汇编语言,C和C++编程语言。编程能力强。
有兴趣的同学请将简历发至邮箱: [email]kawarchen@gmail.com[/email]

PS:创业阶段,提供的实习补助不高,还请见谅。表现优秀者将获得项目股份,大家一起实现梦想!

人数已招够了。谢谢各位关注!此帖正式关闭!

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

收藏
免费 0
支持
分享
最新回复 (25)
雪    币: 155
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
貌似是招学生的
2009-11-23 15:16
0
雪    币: 270
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
一周要5个工作日,最高工资不超过2000,挺会算计的
2009-11-25 09:26
0
雪    币: 435
活跃值: (172)
能力值: ( LV13,RANK:280 )
在线值:
发帖
回帖
粉丝
4
招募Leader, 工资X10, 可以考虑一下
或者给个免试博士也可以考虑一下
2009-11-25 10:14
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
5
this如何识别?
2009-11-25 10:37
0
雪    币: 608
活跃值: (91)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
神兵利器。但是我想不会特别准确把。
2009-11-25 10:50
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不同的编译器有不同的识别方法,微软系列编译器一般使用ecx来传递this指针。
2009-11-25 10:59
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
在保证准确性的基础上,提高生成代码的可读性。无法保证准确性的情况下,使用内嵌汇编表示或者与用户交互进行反编译
2009-11-25 11:01
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
算计说得太难听了吧。
上海地区实习补助基本就这个价位。还免费提供酒店式住宿。
2009-11-25 11:12
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
[QUOTE='火翼[CCG];717076']招募Leader, 工资X10, 可以考虑一下
或者给个免试博士也可以考虑一下[/QUOTE]

大牛请无视我这帖子
2009-11-25 11:13
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
11
我的意思是类的非虚函数.如何正确的归类?
这个做不到,谈何反编译
2009-11-25 11:46
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
请参考reverse c++.pdf(逆向C++.pdf)
我前面的帖子有提供下载: http://bbs.pediy.com/showthread.php?t=98809

简单的说,只针对VC编译器,某个函数未定义而直接使用了ecx,且该ecx是某个类的this指针。则认为该函数是这个类的非虚函数。

现阶段,该反编译器已经可以识别各个类,类成员变量和成员函数以及类与类之间的关系。

反而是虚函数不好识别。
2009-11-25 13:10
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
13
关键问题是归类?如何实现?

class A
{
void AA(void);
void AAA(void);
}

class B
{
void BB(void);
void BBB(void);
}

你怎么能知道AA和AAA属于A类.BBB和BB属于B类.

在有RTTI信息情况下.尚能分析出一些有意义的信息.如果没有RTTI呢?
2009-11-25 14:18
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
你写个小函数调用这两个类的成员函数。
class A
{
public:
        void AA(void){};

    void AAA(void){};
};

class B
{
public:
        void BB(void){};
        void BBB(void){};
};

main()
{
A a;
B b;
a.AA();
a.AAA();
b.BB();
b.BBB();
}
你看看这情况下AA, AAA, BB, BBB的汇编代码就清楚了。
都是未定义而直接使用ecx。
AA,AAA使用了相同值的ecx。因此它们属于相同的类
BB,BBB使用了另外一个值的ecx,属于相同的类。

ecx不同划分为两个不同的类。
当然,还得处理相同类,不同对象的调用情况。
如A a1, A a2;
a1.AA();
a2.AAA();
情况有点复杂,原理已讲。具体如何实现反倒不是最重要的了。
呵呵,不需要我在这里贴出代码吧。
2009-11-25 14:36
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
15
我没有问如何识别类的函数.楼主不用再反复强调这个了.

我问的是如何把不同类的函数正确的归类.

你怎么能得到ecx的值?把程序模拟执行一次?ecx不一样就一定是异类? ecx一样就一定是同类?实际程序中的代码怎么可能这么简单。

为什么编译成byte code类的语言都有实用的反编译工具而编译成native code类的语言则一直没有实用的反编译工具?

做项目是做工程,不是科学.如何实现才是最重要的。
你刻苦钻研造出一个电脑,运行5分钟后爆炸.然后你可以宣布你发明了电脑.这个是科学.
造出来一个5分钟后不爆炸的实用的电脑,这个才是工程.
2009-11-25 14:38
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
Isaiah今天是要打破沙锅问到底了。前面只是简单介绍用ecx来判断,具体情况很复杂,不是在这里三言两语就可以讲清楚的。基本原理是从ecx入口。其中会涉及到很多方面,得综合起来考虑。

你怎么能得到ecx的值?把程序模拟执行一次?
根据使用定义链和定义使用链(常用的编译技术)。ecx来自不同的变量,认为ecx不一样。

ecx不一样就一定是异类?
这个未必,有可能是同个类的不同对象。 前面有提到,这情况有点复杂。得综合考虑。
得加入其他算法,检测是否同个类对象。

ecx一样就一定是同类?
可以这样说!(只针对VC系列编译器,你能举个反例?)
2009-11-25 15:06
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
17
ecx不一样就一定是异类?
这个未必,有可能是同个类的不同对象。 前面有提到,这情况有点复杂。得综合考虑。
得加入其他算法,检测是否同个类对象。

现在有这样的算法吗?

ecx一样就一定是同类?
可以这样说!(只针对VC系列编译器,你能举个反例?)

多重继承

你的目标定得太理想化。实际应用中太多问题还没有理论上的解决方案。
2009-11-25 15:17
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
反编译这一块理论确实还不怎么成熟。尤其是C++反编译!
反编译C++基本都是靠揣摩特定编译器的行为来做的,实在识别不出来,只能有C来表达了。
如类模板和函数模板,至今尚未找到解决的办法。
针对检测是否同个类对象,目前没有现成的算法。我自己简单实现了一下,主要是检测类成员个数,类型,以及类成员函数个数,和类成员函数的返回值,参数等等信息。完全一样则认为是同个类对象。这算法在某些情况下会误识别,需要在加入其他条件。正在一步一步完善中。

ecx一样就一定是同类?
可以这样说!(只针对VC系列编译器,你能举个反例?)

多重继承

不仅仅是多继承,单继承也有这问题。这属于另外个话题了:如何识别类与类之间的关系。继承,组合等等情况。
识别它们可以从构造函数入手。构造函数调用其他构造函数,继承。
如何识别构造函数?构造函数返回thsi指针。
......
2009-11-25 15:32
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
这个项目更像是社会工程学,而不是技术项目。
2009-11-25 15:46
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
20
关键问题就在归类上。目前的没有实用的理论。所以说不妨做人机交互的局部的反编译软件。无论实用价值和科研价值都比现在这个项目好
2009-11-25 15:59
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
该项目最终也是一个人机交互反编译软件。至于实用价值和科研价值,先做了再说
给你发了俏俏话了,看到了吗?
2009-11-25 16:16
0
雪    币: 517
活跃值: (64)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
22
祝楼主能够成功

支持一下
2009-11-27 19:59
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
23
能反编译相信不假,但“该C/C++源代码在功能上与最初的源代码是一致的。”非常不靠谱。
2009-11-28 17:53
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
不靠谱?功能不一致又怎能说是反编译呢。
呵呵,forgot大牛是不是看成了"该C/C++源代码与最初的源代码是一致的。"?

反编译生成的代码与最初的源代码不可能是一样的,但至少得保证功能上是一致的。
2009-11-28 19:02
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
25
看错了,忽略我
2009-11-28 21:08
0
游客
登录 | 注册 方可回帖
返回
//