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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢測 ptrace 是否已經(jīng)在 golang linux 中調(diào)用

如何檢測 ptrace 是否已經(jīng)在 golang linux 中調(diào)用

Go
MMTTMM 2023-07-31 16:03:01
我正在學(xué)習(xí)golang,我想在golang中實現(xiàn)一個簡單的Linux反調(diào)試方法。我有一個 CPP 代碼,它的工作方式與我預(yù)期的相同。但不能在 golang 中做同樣的事情。你們能指導(dǎo)我如何在 go 中做同樣的事情嗎?這是我用作參考的 C++ 代碼。#include <stdio.h>#include <sys/ptrace.h>bool isBeingTraced(){    return ptrace(PTRACE_TRACEME, 0, 1, 0) == -1;}int main(){    if (isBeingTraced())     {        printf("don't trace me !!\n");        return 1;    }    printf("Not being traced...  (maybe)\n");    return 0;}我想在 go lang 中做同樣的事情。在 go 中是否可以做同樣的事情?package mainimport "fmt"func main() {    if isBeingTraced() {        fmt.Println("don't trace me !!")        return    }    fmt.Println("Not being traced...  (maybe)")}func isBeingTraced() bool {    return true // How to Implement that Cpp Function here?}
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗 獲得超7個贊

這里是發(fā)布的 c++ 代碼的 golang 等效代碼。


package main


import (

? ? "fmt"

? ? "syscall"

)


func main() {

? ? if isBeingTraced() {

? ? ? ? fmt.Println("don't trace me !!")

? ? ? ? return

? ? }


? ? fmt.Println("Not being traced...? (maybe)")

}


func isBeingTraced() bool {?

? ? _, _, res := syscall.RawSyscall(syscall.SYS_PTRACE, uintptr(syscall.PTRACE_TRACEME), 0, 0)

? ? return res == 1

}


但我對這段代碼的問題是,在調(diào)用 PTRACE_TRACEME 后無法調(diào)用 exec.Command() 。將嘗試找到解決此問題的方法。如果我有的話,我會在這里引用。


查看完整回答
反對 回復(fù) 2023-07-31
  • 1 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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