第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

libfaketime 不適用于 golang

libfaketime 不適用于 golang

Go
猛跑小豬 2021-12-20 19:26:16
我希望我的 go 程序在 ubuntu 服務(wù)器(14.04)上運(yùn)行,由主管守護(hù),使用假的服務(wù)器時(shí)間。在我的主管配置中,我使用它作為執(zhí)行命令:"faketime 'last Friday 5 pm' /home/user/main"程序運(yùn)行,但顯示當(dāng)前時(shí)間。libfaketime 不能與靜態(tài)鏈接或 setuid 程序一起使用,因?yàn)?LD_PRELOAD 對(duì)此類程序不可用。無(wú)論如何讓我編譯的go程序使用faketime?
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

問(wèn)題是faketime使用LD_PRELOAD環(huán)境變量來(lái)指示程序的動(dòng)態(tài)加載器libfaketime在啟動(dòng)時(shí)加載。libfaketime將執(zhí)行所謂的“插入” - 用這些例程的自己的副本替換正常的動(dòng)態(tài)庫(kù)例程 - 這樣當(dāng)將來(lái)進(jìn)行動(dòng)態(tài)庫(kù)調(diào)用時(shí),libfaketime可以影響發(fā)生的事情。特別是,libfaketime插入與時(shí)間相關(guān)的調(diào)用,因此它能夠向程序返回假值。

這適用于大多數(shù)程序的原因是它們用于libc進(jìn)行系統(tǒng)調(diào)用。libc提供與系統(tǒng)調(diào)用交互的高級(jí)函數(shù),使系統(tǒng)編程更容易。在大多數(shù)使用 的語(yǔ)言中libc,二進(jìn)制文件是動(dòng)態(tài)鏈接的,這意味著它libc實(shí)際上并不包含在二進(jìn)制文件中,而是預(yù)期libc在運(yùn)行二進(jìn)制文件時(shí)系統(tǒng)上將存在(稱為“目標(biāo)文件”)的編譯版本,然后就可以加載動(dòng)態(tài)庫(kù)了。這種動(dòng)態(tài)加載是faketime通過(guò)LD_PRELOAD指令實(shí)現(xiàn)的,它改變了加載器的行為。

然而,Go 有兩個(gè)不同之處。首先,它是靜態(tài)鏈接的,因此沒(méi)有加載器可以關(guān)注LD_PRELOAD. 其次,它不使用libc,因此即使它是動(dòng)態(tài)鏈接的,并且該LD_PRELOAD技巧有效,libc也永遠(yuǎn)不會(huì)被調(diào)用,因此它實(shí)際上仍然無(wú)法實(shí)現(xiàn)欺騙程序使用假時(shí)間函數(shù)的預(yù)期目標(biāo)。


查看完整回答
反對(duì) 回復(fù) 2021-12-20
  • 1 回答
  • 0 關(guān)注
  • 466 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)