作者:杭州-木风
“那堆乱七八糟的东西说白了就是汇编。” — 这个描述有点不科学! “那堆乱七八糟的东西说白了就是机器码。” — 这样才对吧? 和thunk有点类似么,数据和代码本无界限~ 不过linux内核不是有保护的么?数据页的内容不让执行,代码页的不让修改! 哪位大侠知道这种保护linux上怎么去设置,也就是说表现为代码侧是怎么样的?
View Article作者:杭州-木风
“那堆乱七八糟的东西说白了就是汇编。” — 这个描述有点不科学! “那堆乱七八糟的东西说白了就是机器码。” — 这样才对吧? 和thunk有点类似么,数据和代码本无界限~ 不过linux内核不是有保护的么?数据页的内容不让执行,代码页的不让修改! 哪位大侠知道这种保护linux上怎么去设置,也就是说表现为代码侧是怎么样的? PS: 评论没法成功重新发的时候怎么提示说我好像发过类似评论?— bug啊~~~
View Article作者:islet8
这类技巧权当娱乐就好了,千万别让孩子们觉得是在鼓励他们写出“奇妙”的程序。 另外,很严重的一个问题是,这个交换内存的方法,当传入a和b的地址是同一个地址时,就杯具了。
View Article作者:muzuiget
<blockquote cite="#commentbody-25233"> <strong><a href="#comment-25233" rel="nofollow">Iven</a> :</strong> 换成 64 位还能编译吗?哈哈~ </blockquote> 我真的试了,段错误。
View Article作者:在星星上摇摆
<a href="#comment-25266" rel="nofollow">@杭州-木风 </a> 这种字符串的定义方式是把东西放到了正文段的上半部,还是在代码部分呢,没在数据部分。
View Article作者:zyx
以前写过这个,在mingw gcc 3.4.5 下测试通过 #include unsigned int main[]={0x0000a268,0xb8909000,(int)(void*)putchar,0x6858D0FF,0x000000e1,0xb8909090, (int)(void*)putchar,0xb858d0ff,(int)(void*)getchar,0xc390d0ff};
View Article