首页
社区
课程
招聘
[求助]VC源代码编译问题
发表于: 2014-9-9 11:02 6426

[求助]VC源代码编译问题

2014-9-9 11:02
6426
有一份控制台程序源代码,使用VS2010编译,
在不改变源码功能的前提下,
有没有什么好的方法,对源码不需要做太大的改动,
使得每次编译出来的二进制代码,用16进制比较工具来比较有很大的不一致。
比如说用这份源码编译10个二进制文件,这10个一比较都有很多不同的16进制数据。
谢谢。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 2153
活跃值: (740)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
VC现在好像没有代码混淆的功能,还是找个壳加吧
2014-9-9 11:07
0
雪    币: 34
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主,我看不懂你说的,能够清楚点吗?
2014-9-9 11:07
0
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
比如说,一份源码用VS2010编译三次,得到EXE1、EXE2、EXE3,
用UE的16进制编辑器来看,或者用UE的文件比较功能,
这EXE1、EXE2、EXE3的16进制码是基本相同的。
我现在问的是,怎样小改动一下源码,就能让每次编译出来的EXE文件不同?
用UE的16进制编辑器来看,或者用UE的文件比较功能,
让 EXE1 、 EXE2 、EXE3  有50%以上的地方不一样?
这样说清楚没?

2014-9-9 11:25
0
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
如果是手工加些混淆代码,该怎么加?
不想加壳。

2014-9-9 11:27
0
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
花指令                                ~
2014-9-9 12:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
试试不同的优化级别等编译选项
2014-9-9 13:12
0
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个我试过,由于编译选项有限,能编译出不同的exe文件数量也有限。
2014-9-10 09:48
0
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这是要加汇编指令吗?
win7 X64位系统下编译不让加汇编指令,
我加过一次汇编指令,报错。
2014-9-10 09:50
0
雪    币: 1555
活跃值: (3103)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
10
谁说的 wiN7 64下不能内嵌汇编。。。。我一直在这个环境下玩汇编
2014-9-10 10:03
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
加无意义的内嵌汇编语句
2014-9-10 10:10
0
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
请问是在VS2010里面的.c文件还是.cpp文件?
需要做什么设置吗?
2014-9-10 11:06
0
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
请问需要在多少个地方添加这些语句?
能给个例子吗?
2014-9-10 11:08
0
雪    币: 200
活跃值: (525)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
你在编译选项里,使用不同的优化级别,看看效果
2014-9-10 12:49
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
网上有专门介绍如何编写花指令的  你可以搜一下
我不会写花指令   不过简单的增加一些无意义的指令(语句) 还是可以实现的

#include <stdio.h>

int main()
{
        char* p="随便玩玩!";
        int i=0;
lp1:
        if(i==1) goto lp2;
        _asm
        {
                mov i,1;
                jmp lp1;
        }
lp2:
        printf("%s\n",p);
        return 0;

}
2014-9-11 09:49
0
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢。有些明白了。
我试试看。

2014-9-11 10:08
0
雪    币: 189
活跃值: (56)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
混淆器: http://bbs.pediy.com/showthread.php?t=191962
2014-9-22 12:52
0
雪    币: 228
活跃值: (115)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
18
不使用混淆工具的话是无法办到的!
2014-9-22 13:07
0
游客
登录 | 注册 方可回帖
返回
//