由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - [bssd]linux 的address randomize一問
进入Programming版参与讨论
1 (共1页)
c*******v
发帖数: 2599
1
我用下面命令看addr randomize。
sysctl -a --pattern randomize
結果為:
kernel.randomize_va_space = 2
按道理應該是所有的東西都randomize了吧?
但我寫了個hello world小程序。
然後用gdb查system入口,發現每次地址都一樣?
三個gdb命令為:
b main
r
p system
是不是我對gdb的理解不對?
linux version:
Linux 4.15.0-20-generic x86_64
w***g
发帖数: 5958
2
应该是gdb的loader和你系统的loader不一样,应该
是为了调试时的可重复性,没有randomize。
你在程序里打印(void *)&system,不用gdb直接跑应
该能看到每次地址不一样。

【在 c*******v 的大作中提到】
: 我用下面命令看addr randomize。
: sysctl -a --pattern randomize
: 結果為:
: kernel.randomize_va_space = 2
: 按道理應該是所有的東西都randomize了吧?
: 但我寫了個hello world小程序。
: 然後用gdb查system入口,發現每次地址都一樣?
: 三個gdb命令為:
: b main
: r

c*******v
发帖数: 2599
3
我試下看看。
前面有一行print一個整數地址,確實是不同的。

【在 w***g 的大作中提到】
: 应该是gdb的loader和你系统的loader不一样,应该
: 是为了调试时的可重复性,没有randomize。
: 你在程序里打印(void *)&system,不用gdb直接跑应
: 该能看到每次地址不一样。

c*******v
发帖数: 2599
4
[1]
__builtin_return_address(0)
__builtin_frame_address(0)
這兩個print了一下,確實是變的。
gdb跑了下,確實打印結果不變。應該就是你說的這個原因了。
gdb都固定了。
[2]
你說的&system怎麼取?
我這裡編譯通過不了。

【在 w***g 的大作中提到】
: 应该是gdb的loader和你系统的loader不一样,应该
: 是为了调试时的可重复性,没有randomize。
: 你在程序里打印(void *)&system,不用gdb直接跑应
: 该能看到每次地址不一样。

c*******v
发帖数: 2599
5
剛找到gdb有這個開關
https://visualgdb.com/gdbreference/commands/set_disable-randomization

【在 c*******v 的大作中提到】
: [1]
: __builtin_return_address(0)
: __builtin_frame_address(0)
: 這兩個print了一下,確實是變的。
: gdb跑了下,確實打印結果不變。應該就是你說的這個原因了。
: gdb都固定了。
: [2]
: 你說的&system怎麼取?
: 我這裡編譯通過不了。

w***g
发帖数: 5958
6
Linux里system就是一个正常函数, 在stdlib.h里,
怎么会编译不了?

【在 c*******v 的大作中提到】
: [1]
: __builtin_return_address(0)
: __builtin_frame_address(0)
: 這兩個print了一下,確實是變的。
: gdb跑了下,確實打印結果不變。應該就是你說的這個原因了。
: gdb都固定了。
: [2]
: 你說的&system怎麼取?
: 我這裡編譯通過不了。

c*******v
发帖数: 2599
7
編譯過了。我includ弄亂了。

【在 w***g 的大作中提到】
: Linux里system就是一个正常函数, 在stdlib.h里,
: 怎么会编译不了?

w***g
发帖数: 5958
8
你bssd, 但是还是置顶了,哈哈。老邢这站真是不行了,就这都能置顶。
g****t
发帖数: 31659
9
此類問題與security有關。所以我bssd。
老邢腦子進水了。
我個人認為:data scientist讀csv文件,而不是用DB engine等輸入數
據。是有廣泛的security implication的。未來也許就會爆出來。

【在 w***g 的大作中提到】
: 你bssd, 但是还是置顶了,哈哈。老邢这站真是不行了,就这都能置顶。
1 (共1页)
进入Programming版参与讨论