; ; ; (To someone)
本帖最后由 wqsong 于 2011-10-24 01:18 编辑好久没上来了,用了半晚上时间写的一个小程序,没什么用,权当娱乐。
/*The deepest regards to Dennis Ritchie. The star falls.*/
#include <stdio.h>
typedef void (*D)(void *, void *);
char R[] = {
0x55, 0x8B, 0xEC, 0x8B, 0x45, 0x08,
0x83, 0xC0, 0x12, 0x50, 0xFF, 0x55,
0x0C, 0x83, 0xC4, 0x04, 0x5D, 0xC3,
0x44, 0x65, 0x6E, 0x6E, 0x69, 0x73,
0x20, 0x52, 0x69, 0x74, 0x63, 0x68,
0x69, 0x65, 0x21, 0x0D, 0x0A, 0x00
};
void main()
{
((D)R)(R, printf);/*((D)&R)(R, printf);*/
}
使用范围:
1、32位系统
2、__cdecl调用约定。
3、C编译器(C++编译器改为((D)&R)(R, printf))。
运行结果:
Windows XP + VC9
CentOS 5.6 + GCC 4.1
Win7似乎会发生段错误,改一下段属性即可。
The deepest regards to Dennis Ritchie. The star falls.
页:
[1]