声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2502|回复: 0

[C/C++] ; ; ; (To someone)

[复制链接]
发表于 2011-10-22 01:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 wqsong 于 2011-10-24 01:18 编辑

        好久没上来了,用了半晚上时间写的一个小程序,没什么用,权当娱乐。

  1. /*The deepest regards to Dennis Ritchie. The star falls.*/
  2. #include <stdio.h>
  3. typedef void (*D)(void *, void *);
  4. char R[] = {
  5.         0x55, 0x8B, 0xEC, 0x8B, 0x45, 0x08,
  6.         0x83, 0xC0, 0x12, 0x50, 0xFF, 0x55,
  7.         0x0C, 0x83, 0xC4, 0x04, 0x5D, 0xC3,
  8.         0x44, 0x65, 0x6E, 0x6E, 0x69, 0x73,
  9.         0x20, 0x52, 0x69, 0x74, 0x63, 0x68,
  10.         0x69, 0x65, 0x21, 0x0D, 0x0A, 0x00
  11. };
  12. void main()
  13. {
  14.         ((D)R)(R, printf);  /*((D)&R)(R, printf);*/
  15. }
复制代码

使用范围:
1、32位系统
2、__cdecl调用约定。
3、C编译器(C++编译器改为((D)&R)(R, printf))。
运行结果:
Windows XP + VC9                                                      DR_WinXP.png

CentOS 5.6 + GCC 4.1                                                         
DR_LINUX.png

Win7似乎会发生段错误,改一下段属性即可。

The deepest regards to Dennis Ritchie. The star falls.





回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-5 14:51 , Processed in 0.066744 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表