首页
社区
课程
招聘
[旧帖] C/C++ 源代码 加密技术?混淆技术?(求助大牛级别的) 0.00雪花
发表于: 2014-11-4 11:50 16806

[旧帖] C/C++ 源代码 加密技术?混淆技术?(求助大牛级别的) 0.00雪花

2014-11-4 11:50
16806
在一个项目里面,看到一种加密情况,想不出原理,请教下大家:

对方提供的代码都是sc后缀的,用vi/winhex打开,里面的内容都是乱码,不是代码混淆的那种,是全乱码有不可见字符。
然后编译的时候,用另外一个程序进行编译。具体的编译命令和gcc一样。
在AIX、Linux、Win下面都能正常编译。

在相关的编译目录,设置过允许写入不可删除的权限。编译后,有相关的.filename.swp的文件,但文件大小为0。

看起来,就好像是gcc编译在内存解密出来的源代码。

请问下:
gcc 这类编译器是否能编译内存的代码,如何编译?
上述说的源代码加密,是什么技术实现的? 代码混淆不像,沙盘也不像?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 3330
活跃值: (1662)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
2
跟踪下那个fake gcc不就行了,应该是hack gcc读文件内容的代码,加上解密功能。
2014-11-4 11:56
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
如果只是实现 这种功能,简单的事。。

直接把rar +gcc  融合一下就出来了。

具体你碰到的这个你得详细分析一下。 简单的用strace 跟踪一下那个Fake gcc
2014-11-4 12:37
0
雪    币: 223
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看它的处理,gcc是没有改动的,因为它能放到各个操作系统编译。xlC(AIX上的编译器)也能正常使用。

就是没有对原本的编译器任何改动。编译的时候也是用操作系统本身的编译。比如编译器升级了,编译出来的程序也对应升级。
2014-11-4 15:10
0
雪    币: 223
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不过想不明白的是它没有解压/解密出明文的源代码。也没有对编译器进行hack。这个怎么编译?
它能在AIX,Linux,Win下都能正常编译。
在AIX上的编译器是xlC,在Linux的编译是gcc。Win下没编译试过,看介绍是可以的。
在编译的时候,可以自己从网上下载gcc代码,编译出gmake然后在编译。
在Aix上也是直接编译,没有对编译器做过任何处理。就是在makefile上面添加相关编译参数,编译参数没有任何异常。

我看了下现在网络上的加密的公司的产品介绍。没有这种能对代码直接进行加密,然后还能正常编译的产品。
2014-11-4 15:12
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
1、多操作系统,无非就是套个壳

2、不解压,难道就不能内存? 你gcc 一样要把源代码文件放到内存里面的。

3、如果是动态的把gcc编译出来,那说明就是完整的流程了。
2014-11-4 15:39
0
雪    币: 223
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
就回到问题1了,gcc 怎么编译内存里面的东西?
我没有找到编译器如何编译内存的代码。求教。

另外,那个动态的把gcc编译出来。我的意思是,如果不用系统自带的编译器,能手工下载gcc,然后人工编译,再重定向make为人工编译出来的gcc,一样能正常编译的意思。意思就是说,它不对编译器hack
2014-11-4 15:43
0
雪    币: 3330
活跃值: (1662)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
8
不知道gcc支持管道编译不,就是内容直接放到stdin/stdout上
编译命令加个-v试试,看有什么猫腻
2014-11-4 15:45
0
雪    币: 223
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
试了管道编译。(用了pipe也不行)
$cat a.cpp
void main(){ printf("this is test\n");  }
$cat a.cpp | xlC -v

但是编译不了……,求教,管道编译怎么编译?

另外用了-v的函数去编译。显示是有  .file.cpp的,编译的时候实际使用它进行编译。求教,怎么取得这个文件的具体内容呢?试过调整目录权限为允许写入不允许删除,但是编译完后,只有.file.cpp.swp的文件(大小为0),没有其他的内容。
2014-11-4 15:58
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
如果是已編譯好的lib呢...
2014-11-4 21:58
0
雪    币: 223
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
lib库都是直接用.file.sc进行编译的。
就是只提供加密源代码和一个调用编译器进行编译工具。
其他的都没有
2014-11-5 10:59
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习以下!
2014-11-16 19:52
0
游客
登录 | 注册 方可回帖
返回
//