
ربط Golang لـ PE-sieve
روابط Golang لـ PE-sieve.
يتطلب وجود pe-sieve32.dll و pe-sieve64.dll (بإصدار مدعوم) في دليل المشروع، أو في مسار يحدده متغير البيئة: PESIEVE_DIR.
يكشف عن الأغلفة التالية لـ PE-sieve API:
PESieveVersion uint32
func PESieveHelp()
func PESieveScan(pp PEsieveParams) PEsieveReport
func PESieveScanEx(pp PEsieveParams, rtype t_report_type, jsonMaxSize uint32) (PEsieveReport, string, uint32)
package main
import (
"fmt"
"syscall"
"github.com/hasherezade/pesieve-go"
)
// Scan the current process
func ScanThis(myPid uint32) string {
var mods = string("kernel32.dll")
ignoredBuf := make([]byte, len(mods)+1)
copy(ignoredBuf[:], mods)
// Set up the scan parameters
pp := pesieve.PEsieveParams{
Pid: myPid,
Threads: true,
Shellcode: pesieve.SHELLC_PATTERNS,
Quiet: true,
JsonLvl: pesieve.JSON_DETAILS2,
ModulesIgnored : pesieve.PARAM_STRING { Buffer: ignoredBuf, Length: uint32(len(mods)) },
}
copy(pp.OutputDir[:], "MyDemoDir")
const rtype = pesieve.REPORT_ALL
const jsonMaxLen = 2000
_, json, _ := pesieve.PESieveScanEx(pp, rtype, jsonMaxLen)
return json
}
func main() {
message := ScanThis( uint32(syscall.Getpid()) )
fmt.Println(message)
}