Files
go-obfuscation/pkg/syscallobf/syscallobf.go
T
2026-05-31 01:09:34 +01:00

27 lines
613 B
Go

package syscallobf
// ObfuscatedCall wraps a syscall with obfuscated number
type ObfuscatedCall struct {
encodedNum [4]byte
key [4]byte
}
func (o *ObfuscatedCall) Num() uintptr {
return uintptr(o.encodedNum[0]^o.key[0]) |
uintptr(o.encodedNum[1]^o.key[1])<<8 |
uintptr(o.encodedNum[2]^o.key[2])<<16 |
uintptr(o.encodedNum[3]^o.key[3])<<24
}
func encode(num uintptr, key [4]byte) ObfuscatedCall {
return ObfuscatedCall{
encodedNum: [4]byte{
byte(num&0xff) ^ key[0],
byte((num>>8)&0xff) ^ key[1],
byte((num>>16)&0xff) ^ key[2],
byte((num>>24)&0xff) ^ key[3],
},
key: key,
}
}