1
0

Allow to enable/disable kaslr/smep/smap for debugging

This commit is contained in:
2019-08-16 05:25:16 +00:00
parent a0a9333385
commit fc50808893
3 changed files with 60 additions and 3 deletions

View File

@ -83,7 +83,7 @@ func interactive(q *qemu.QemuSystem) (err error) {
}
func debugHandler(kcfg config.KernelConfig, workPath, kernRegex, gdb string,
dockerTimeout time.Duration) (err error) {
dockerTimeout time.Duration, kaslr, smep, smap bool) (err error) {
ka, err := config.ReadArtifactConfig(workPath + "/.out-of-tree.toml")
if err != nil {
@ -104,6 +104,22 @@ func debugHandler(kcfg config.KernelConfig, workPath, kernRegex, gdb string,
if err != nil {
return
}
q.SetKASLR(kaslr)
q.SetSMEP(smep)
q.SetSMAP(smap)
redgreen := func(name string, enabled bool) aurora.Value {
if enabled {
return aurora.BgGreen(aurora.Black(name))
}
return aurora.BgRed(aurora.Gray(aurora.Bold(name)))
}
fmt.Printf("[*] %s %s %s\n", redgreen("KASLR", kaslr),
redgreen("SMEP", smep), redgreen("SMAP", smap))
q.Debug(gdb)
coloredGdbAddress := aurora.BgGreen(aurora.Black(gdb))
fmt.Printf("[*] gdb runned on %s\n", coloredGdbAddress)
@ -139,6 +155,9 @@ func debugHandler(kcfg config.KernelConfig, workPath, kernRegex, gdb string,
coloredRemoteFile := aurora.BgGreen(aurora.Black(remoteFile))
fmt.Printf("[*] build result copied to %s\n", coloredRemoteFile)
fmt.Printf("\n%s\n", q.GetSshCommand())
fmt.Printf("gdb -ex 'target remote %s'\n\n", gdb)
err = interactive(q)
return
}