cfee2139a0
* TriCore Support python sample * Update sample_tricore.py Correct attribution * Update sample_tricore.py Fixed byte code to execute properly. * Update sample_tricore.py Removed testing artifact * Added tricore msvc config-file.h * Added STATIC to tricore config and added helper methods to symbol file generation. * Update op_helper.c Use built in crc32 * Fix tricore samples and small code blocks are now handled properly * Add CPU types * Generate bindings * Format code Co-authored-by: lazymio <mio@lazym.io> |
||
---|---|---|
.. | ||
unicorn | ||
Makefile | ||
README.md | ||
sample.go |
To download/update the Unicorn Go bindings, run:
go get -u github.com/unicorn-engine/unicorn/bindings/go
A very basic usage example follows
(Does not handle most errors for brevity. Please see sample.go for a more hygenic example):
package main
import (
"fmt"
uc "github.com/unicorn-engine/unicorn/bindings/go/unicorn"
)
func main() {
mu, _ := uc.NewUnicorn(uc.ARCH_X86, uc.MODE_32)
// mov eax, 1234
code := []byte{184, 210, 4, 0, 0}
mu.MemMap(0x1000, 0x1000)
mu.MemWrite(0x1000, code)
if err := mu.Start(0x1000, 0x1000+uint64(len(code))); err != nil {
panic(err)
}
eax, _ := mu.RegRead(uc.X86_REG_EAX)
fmt.Printf("EAX is now: %d\n", eax)
}
An example program exercising far more Unicorn functionality and error handling can be found in sample.go.