C/C++没写main函数,编译器被我骗了!
合集 · 硬核干货分享 (15)
-
Git爆严重漏洞,精准攻击程序员!
6:16
-
TCP三次握手只握两次也可以?
6:10
-
百度网盘秒传的秘密!
3:46
-
人在日本,访问不了国内网站,抓包发现了不得了的事情!
3:31
-
诡异的浏览器白屏,被Nginx坑了!
5:49
-
抓包蓝屏了,我发现了Wireshark的漏洞!
4:33
-
C/C++没写main函数,编译器被我骗了!
7:07
-
系统又崩溃了,高并发到底怎么做?
3:05
-
给你一个IP,如何知道它是Linux还是Windows?
7:53
-
可怕!CPU暗藏了这些未公开的指令!
8:01
-
Wireshark/科来/Fiddler网络抓包哪家强?新手学习计算机网络选哪个?
7:18
-
什么是数字签名?有什么用?原理又是什么?
5:30
-
IP地址不是早就耗尽了吗,为什么我随便就能申请到?全中国有多少公网IP地址?
5:16
-
我用了2个月,从0到1开发了一款自己的网络抓包软件!
6:05
-
两个月爆改Wirshark,网络抓包新选择!
6:22
Description
没写main函数的C/C++代码,GCC和Visual Studio都被骗了!写最骚的代码,实现最奇葩的效果!
Comments
一个java程序员调用native函数遇到了c程序员留下的bug,java程序员无奈去看c源码,结果c源码嵌套了一大堆汇编。[doge][笑哭]
♥ 540 ↩ 33
有的人看似在教我们C,实际上在教我们汇编(゚ω゚)
♥ 193 ↩ 1
main只是一个定义的入口点,你叫什么都可以,但一个程序必须要有入口点(从哪儿开始执行),上层的代码只是将机器码的可读性提高了而已(个人看法)
♥ 175 ↩ 10
文末的代码应该加0x表示十六进制,不然编译器会认为是符号,如果是0xc3(retq)直接返回了[doge]。
♥ 123 ↩ 2
很精妙啊,不是骗,实际上是绕过了整个词法分析语义分析和代码生成过程
♥ 108 ↩ 7
全局符号而已。 最简单的能成功编译的崩溃程序。 int main; 可以试试。
♥ 76 ↩ 6
gcc12 和 clang14 并不能编译通过
♥ 24 ↩ 8
「main」这个符号本身也只是约定俗成。写链接库,用gcc编译,且不想要依赖CRT,经常都是 gcc -nostdlib -e DllMain …[藏狐]
♥ 21
数据段为什么会有执行权限[思考]
♥ 17 ↩ 12
有没有计算机网络和操作系统的视频文章呀
♥ 16 ↩ 1
答:我用WinMain[doge]
♥ 15 ↩ 1
别说main了,就是mian miao mnai都行[doge]
♥ 13 ↩ 2
这种抖机灵相当于嵌asm 但凡换了硬件架构。。。
♥ 12
用Xcode编译刚输进去就显示两个错误且无法运行 从指针强制转换到较小类型“int”会丢失信息 main不能声明为全局变量
♥ 9 ↩ 3
没写过裸机程序或者不依赖 ld 的程序?可以手动设置入口的....
♥ 9
应该能的,往前翻翻C3对应的汇编指令就是retn,应该和直接return效果一致
♥ 9
这么久不更 我还以为你忘记密码了呢[doge]
♥ 7 ↩ 1
你这代码不加参数编程出来不能执行吧,默认情况下数据段不应该有执行权限[妙啊]
♥ 6 ↩ 1
最后一个不能运行,但如果C3前面加个0x就可以了,而C3在汇编里面是ret(别名retn)的机器码,所以和return 0;差不多的效果,不同的是没有返回值[呲牙]
♥ 5
第一看过去是shellcode,不过看后门的printf 我就想起 %n$p 懂的都懂
♥ 5