看到的一道面试题,很有趣,与大家分享zt
来源:互联网 发布:软件开发人员工作总结 编辑:程序博客网 时间:2024/05/23 12:19
在下面有*的地方添加代码,显示出hello world!
#include "stdio.h"
void print()
{
*
}
void main()
{
}
答案:
一、用宏的方式
#include <stdio.h>
void print(void)
{
#define main main(void){ print();} /
void __main
printf("Hello world/n");
}
void main(void)
{
}
二、用重定向入口点的方式
#include "stdio.h"
void print()
{
#pragma comment(linker, "/entry:print")
#pragma comment(lib, "msvcrt.lib")
puts ("hello world/n");
printf ("hello world/n");
}
三、用重定向和HOOK main的方式
#include "stdio.h"
extern "C" int __cdecl mainCRTStartup(void); //注意:若源文件是.c结尾的话,不需要这一句
void print()
{
#pragma comment(linker, "/entry:/"print/"")
#pragma comment(linker, "/SECTION:.text,REW" )
// int mainCRTStartup();
void main();
__asm
{
MOV EAX, OFFSET main
MOV BYTE PTR[EAX], 0xB8 //MOV EAX, 0x
MOV DWORD PTR[EAX+1], OFFSET SHOWSTRING
MOV WORD PTR[EAX+5], 0xE0FF // JMP EAX
}
mainCRTStartup();
SHOWSTRING:
printf ("hello,world/n");
getchar();
}
void main()
{
}
看似简单,实则复杂,这才是好题目!感谢提供该题的朋友!
- 看到的一道面试题,很有趣,与大家分享zt
- 一道很有趣的面试题
- 一道有趣的面试题
- 一道有趣的面试题
- 一道有趣的面试题
- 一道有趣的面试题
- 一道有趣的面试题
- 一道有趣的面试题
- 一道有趣的面试题
- 一道有趣的面试题
- 一道有趣的面试题
- 一道有趣的面试题
- 今天碰到一道比较有趣的面试题,大家来探讨一下。
- 网上看到的一道腾讯面试题
- 《一道有趣的面试题》的疑问
- 一道有趣的JS面试题
- 一道有趣的GOOGLE面试题
- 一道有趣的GOOGLE面试题 .
- 五大非常见Linux命令
- 真气运行法五步功成
- 今日开博,争取每日都有进步!
- window平台直接访问unix中文文件路径时的变通方法,使用php发送
- [已解决]Cannot retrieve repository metadata (repomd.xml) for repository:atrpms.Please verify its path and try again
- 看到的一道面试题,很有趣,与大家分享zt
- php缓存技术详解
- poj 3507
- sha
- 可重入的词法和语法分析
- 对各类xss攻击手段的过滤
- BMP文件格式分析
- nginx.conf
- 不开心,关机中!