第二个问题:
第三个问题:
第四个问题:
面对ChatGPT给的答案,是不是越来越没概念了?每个字都能看懂,但是好像看不懂它在说什么了……所以我一直觉得AI越来越强大,只会让认知高能力强的人变得更强,拉大弱者与强者的差距,进而拉大贫富差距……
看到很多人鼓吹AI是普通人的福音,它能帮你做PPT、画图、写文案、写代码……大家都不用学习了!那也得你懂那个东西,你问它,它给你答案,你做判断,你才能得到你想要的接近正确的答案!所以AI时代,你可以不用亲自动手去做,但是你得给AI想法,你得做判断,你还得能正确的做判断,所以其实更需要学习!提高认知,提高判断能力。狙击枪放在步兵手里跟放在狙击手手里,效果天壤之别!
如果你有深厚的底层功底:懂硬件、懂Linux内核,其实ChatGPT已经给了你答案:
1常量字符串不可修改是编译器、操作系统、硬件三种共同作用的结果
2常量字符串编译后是放在可执行文件的只读区域
3程序执行后,常量字符串又被放在进程空间中的只读区域
4进程空间中的只读区域受双重保护:操作系统内存保护、硬件支持
5Linux提供了mprotect函数可以改变Linux规则实现只读区域可写
6如果你有实力,你甚至可以做到修改硬件支持实现只读区域可写
那咱们就选最难的,直接修改硬件支持,实现只读区域可写!
接下来我们一层一层来分析
常量字符串在ELF文件中的样子
如果你的程序中有常量字符串,编译后它会放在只读区域,如图