vc里面如何编写一些无用的垃圾代码又不影响程序运行

hyccs 2012-01-25 09:57:25
如题,呵呵,我向来想去是用内联汇编,不过大家还有什么好的方法
...全文
411 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyccs 2012-01-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hyccs 的回复:]
引用 8 楼 bluewanderer 的回复:
动态调用只用一个call可以调用多个函数,相当于图里一个顶点可以连接很多其他的顶点。如果每个顶点所连接的顶点数都乘以N的话... 这个复杂度可就


不太懂汇编额,你能写一个动态调用一个简单的messagebox函数的代码给我参考一下吗,给你加分哦
[/Quote]多谢指点,我会好好看的
bluewanderer 2012-01-25
  • 打赏
  • 举报
回复
typedef int (*F)();

F g_f0, g_f1;

int fa()
{
return g_f0();
}

int fb()
{
return g_f1();
}

int fc()
{
return 0;
}

int fd()
{
g_f1 = fa;
g_f0 = fc;

return fb();
}

int fe()
{
g_f0 = fb;
g_f1 = fd;

return fa();
}

int main()
{
return fe();
}


大体上是这种感觉,不过要真反跟踪的话需要比这个复杂得多。这种东西做复杂点单步的时候就是一个迷宫。
hyccs 2012-01-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bluewanderer 的回复:]
动态调用只用一个call可以调用多个函数,相当于图里一个顶点可以连接很多其他的顶点。如果每个顶点所连接的顶点数都乘以N的话... 这个复杂度可就
[/Quote]

不太懂汇编额,你能写一个动态调用一个简单的messagebox函数的代码给我参考一下吗,给你加分哦
hyccs 2012-01-25
  • 打赏
  • 举报
回复
不太懂汇编额,你能写一个动态调用一个简单的messagebox函数的代码给我参考一下吗,给你加分哦
bluewanderer 2012-01-25
  • 打赏
  • 举报
回复
动态调用只用一个call可以调用多个函数,相当于图里一个顶点可以连接很多其他的顶点。如果每个顶点所连接的顶点数都乘以N的话... 这个复杂度可就
hyccs 2012-01-25
  • 打赏
  • 举报
回复
动态调用吗
bluewanderer 2012-01-25
  • 打赏
  • 举报
回复
垃圾代码是没办法反逆向的。

你可以在容易被断点的位置多加几层动态调用(用函数指针调用函数),有能力的话可以用汇编在栈里改返回值实现动态调用。这样常规的单步跟踪就已经很难达到目的。

但是要知道,完全的反逆向是不可能的。
bluewanderer 2012-01-25
  • 打赏
  • 举报
回复
单纯放点垃圾代码是没办法防止逆向的||| 你可以在容易被断点但是不影响速度的地方多加几层函数指针调用,有能力的话上汇编在返回地址上做点文章。这样基本上除非你的软件太值钱别人逆向一会儿也就没动力了。

彻底反逆向基本上是不可能的,就算你整到虚拟机那个级别,别人真想逆还是会有办法。
hyccs 2012-01-25
  • 打赏
  • 举报
回复
运行就无所谓了,只要打开就可以了
hyccs 2012-01-25
  • 打赏
  • 举报
回复
防止别人逆向我的软件憋,发个代码吧= =
bluewanderer 2012-01-25
  • 打赏
  • 举报
回复
1. 把一个会用到的数组扩大
2. 写一堆没用的函数把函数指针存到那个数组里

因为你会用哪个数组所以那个数组里的数据不会被优化掉...

当然前提是你不需要调用那些垃圾代码。
AnYidan 2012-01-25
  • 打赏
  • 举报
回复
lz 要干什么?

从效率的角度讲不可能不影响程序运行

初次之外插入 空操作,计算无用数值再丢弃。。。。

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧