как определить, что ptrace уже вызывается в golang linux - PullRequest
0 голосов
/ 26 октября 2019

Я изучаю golang и хочу реализовать простой метод антиотладки Linux в golang. У меня есть код CPP, который работает так, как я планировал. Но не может сделать то же самое в Голанге. ребята, можете ли вы объяснить мне, как сделать то же самое на ходу?

Вот код 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. Можно ли вообще сделать то же самое на ходу?

package main

import "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?
}
...