HyperDbg / gui

HyperDbg's Graphical User Interface (GUI)
Apache License 2.0
66 stars 9 forks source link

How to compile it? #40

Closed Nitr0-G closed 9 months ago

Nitr0-G commented 1 year ago

How to compile it on windows?

Nitr0-G commented 1 year ago

I got this error

C:\Users\Nir0-G\go\pkg\mod\github.com\!hyper!dbg\golibrary>go build -o 12.exe man.go
reading go.work: path C:\Users\Nir0-G\go\pkg\mod\github.com\!hyper!dbg\golibrary appears multiple times in workspace

I apologize for the stupid questions. It's just that I usually program in asm/c/c++ and very rarely have I encountered golang projects in reverse for x86-64

ddkwork commented 1 year ago

I got this error

C:\Users\Nir0-G\go\pkg\mod\github.com\!hyper!dbg\golibrary>go build -o 12.exe man.go
reading go.work: path C:\Users\Nir0-G\go\pkg\mod\github.com\!hyper!dbg\golibrary appears multiple times in workspace

I apologize for the stupid questions. It's just that I usually program in asm/c/c++ and very rarely have I encountered golang projects in reverse for x86-64

sorry,please delete go.work file.

Nitr0-G commented 1 year ago
go get -u github.com/HyperDbg/gui
go env GOPATH
cd(you need cd to your GOPATH)
go get github.com/ddkwork/golibrary/mylog
go get github.com/ddkwork/golibrary/src/cpp2go/delete/myc2go/windef
go get github.com/ddkwork/golibrary/src/driverTool
go get github.com/ddkwork/golibrary/src/fynelib/canvasobjectapi
go get github.com/ddkwork/golibrary/src/fynelib/fyneTheme
go get github.com/ddkwork/golibrary/src/fynelib/myTable
go get github.com/ddkwork/golibrary/src/fynelib/notes
go get github.com/ddkwork/golibrary/src/go-zydis
cd C:\Users\Nitr0-G\go\pkg\mod\github.com\!hyper!dbg\golibrary
go build -o 12.exe man.go

After all these commands above I have:

C:\Users\Nitr0-G\go\pkg\mod\github.com\!hyper!dbg\golibrary>go build -o 12.exe man.go
SDK\Imports\HPRDBGCTRL.dll_windows.go:8:2: no required module provides package github.com/ddkwork/golibrary/mylog; to add it:
        go get github.com/ddkwork/golibrary/mylog
SDK\Headers\Ioctls.h.go:5:2: no required module provides package github.com/ddkwork/golibrary/src/cpp2go/delete/myc2go/windef; to add it:
        go get github.com/ddkwork/golibrary/src/cpp2go/delete/myc2go/windef
fnTable\fnTable.go:8:2: no required module provides package github.com/ddkwork/golibrary/src/driverTool; to add it:
        go get github.com/ddkwork/golibrary/src/driverTool
man.go:8:2: no required module provides package github.com/ddkwork/golibrary/src/fynelib/canvasobjectapi; to add it:
        go get github.com/ddkwork/golibrary/src/fynelib/canvasobjectapi
man.go:9:2: no required module provides package github.com/ddkwork/golibrary/src/fynelib/fyneTheme; to add it:
        go get github.com/ddkwork/golibrary/src/fynelib/fyneTheme
fnTable\pageBreaks\Disassembly.go:6:2: no required module provides package github.com/ddkwork/golibrary/src/fynelib/myTable; to add it:
        go get github.com/ddkwork/golibrary/src/fynelib/myTable
fnTable\pageNotes\pageNotes.go:6:2: no required module provides package github.com/ddkwork/golibrary/src/fynelib/notes; to add it:
        go get github.com/ddkwork/golibrary/src/fynelib/notes
fnTable\pageBreaks\Disassembly.go:7:2: no required module provides package github.com/ddkwork/golibrary/src/go-zydis; to add it:
        go get github.com/ddkwork/golibrary/src/go-zydis
package command-line-arguments
        imports fyne.io/fyne/v2/app
        imports fyne.io/fyne/v2/internal/driver/glfw
        imports fyne.io/fyne/v2/internal/driver/common
        imports fyne.io/fyne/v2/internal/painter/gl
        imports github.com/go-gl/gl/v3.2-core/gl: build constraints exclude all Go files in 
C:\Users\Nitr0-G\go\pkg\mod\github.com\go-gl\gl@v0.0.0-20211210172815-726fda9656d6\v3.2-core\gl

How does it work?) What doesn't he(https://github.com/HyperDbg /gui) like right now?!

Nitr0-G commented 1 year ago

@ddkwork Ye, i delete this file. Thanks! But the problem above appeared after this action =(

ddkwork commented 1 year ago

@ddkwork Ye, i delete this file. Thanks! But the problem above appeared after this action =(

Hi, i was updated all file, try again.

Nitr0-G commented 1 year ago

@ddkwork Hi, i was updated all file, try again.

Thank you very much! Most of the errors have disappeared, but he still doesn't want to compile for some reason

C:\Users\Nitr0-G\go\pkg\mod\github.com\!hyper!dbg\gui@v0.0.0-20230507125009-3c22aff60f6b>go build -o 12.exe main.go
package command-line-arguments
        imports github.com/ddkwork/hyperdbgui/ux/menus
        imports github.com/ddkwork/golibrary/skiaLib/widget
        imports github.com/ddkwork/golibrary/skiaLib/widget/doctable
        imports github.com/ddkwork/golibrary/skiaLib/widget/tabbar
        imports github.com/richardwilkes/unison
        imports github.com/go-gl/gl/v3.2-core/gl: build constraints exclude all Go files in 
C:\Users\Nitr0-G\go\pkg\mod\github.com\go-gl\gl@v0.0.0-20211210172815-726fda9656d6\v3.2-core\gl
ddkwork commented 1 year ago

@ddkwork Hi, i was updated all file, try again.

Thank you very much! Most of the errors have disappeared, but he still doesn't want to compile for some reason

C:\Users\Nitr0-G\go\pkg\mod\github.com\!hyper!dbg\gui@v0.0.0-20230507125009-3c22aff60f6b>go build -o 12.exe main.go
package command-line-arguments
        imports github.com/ddkwork/hyperdbgui/ux/menus
        imports github.com/ddkwork/golibrary/skiaLib/widget
        imports github.com/ddkwork/golibrary/skiaLib/widget/doctable
        imports github.com/ddkwork/golibrary/skiaLib/widget/tabbar
        imports github.com/richardwilkes/unison
        imports github.com/go-gl/gl/v3.2-core/gl: build constraints exclude all Go files in 
C:\Users\Nitr0-G\go\pkg\mod\github.com\go-gl\gl@v0.0.0-20211210172815-726fda9656d6\v3.2-core\gl

You need add gcc path to system env.

Nitr0-G commented 1 year ago

@ddkwork You need add gcc path to system env.

do you have tdm-gcc?! (https://stackoverflow.com/questions/59517128/implicit-declaration-of-function-beginthread-when-call-go-library-from-c-code)

I have this problem when compiling through this ".go" of any ".c"

Nitr0-G@WIN-T1RR1J259SK MINGW64 /c/Users/Nitr0-G/go/pkg/mod/github.com/!hyper!dbg/gui@v0.0.0-20230507125009-3c22aff60f6b
# go build -o gui.exe main.go
# runtime/cgo
gcc_libinit_windows.c: In function ‘_cgo_beginthread’:
gcc_libinit_windows.c:136:27: error: implicit declaration of function ‘_beginthread’; did you mean ‘_cgo_beginthread’? [-Werror=implicit-function-declaration]
  136 |                 thandle = _beginthread(func, 0, arg);
      |                           ^~~~~~~~~~~~
      |                           _cgo_beginthread
cc1: all warnings being treated as errors
Nitr0-G commented 1 year ago

@ddkwork You need add gcc path to system env.

do you have tdm-gcc?! (https://stackoverflow.com/questions/59517128/implicit-declaration-of-function-beginthread-when-call-go-library-from-c-code)

I have this problem when compiling through this ".go" of any ".c"

Nitr0-G@WIN-T1RR1J259SK MINGW64 /c/Users/Nitr0-G/go/pkg/mod/github.com/!hyper!dbg/gui@v0.0.0-20230507125009-3c22aff60f6b
# go build -o gui.exe main.go
# runtime/cgo
gcc_libinit_windows.c: In function ‘_cgo_beginthread’:
gcc_libinit_windows.c:136:27: error: implicit declaration of function ‘_beginthread’; did you mean ‘_cgo_beginthread’? [-Werror=implicit-function-declaration]
  136 |                 thandle = _beginthread(func, 0, arg);
      |                           ^~~~~~~~~~~~
      |                           _cgo_beginthread
cc1: all warnings being treated as errors

Oh, I deleted that function and now I get another error promotion xD xD

# go build -o gui.exe main.go
# command-line-arguments
C:\msys64\mingw64\lib\go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
/usr/lib/gcc/x86_64-pc-msys/11.3.0/../../../../x86_64-pc-msys/bin/ld: cannot find -lmingwex: No such file or directory
/usr/lib/gcc/x86_64-pc-msys/11.3.0/../../../../x86_64-pc-msys/bin/ld: cannot find -lmingw32: No such file or directory
collect2: error: ld returned 1 exit status
ddkwork commented 1 year ago

@ddkwork You need add gcc path to system env.

do you have tdm-gcc?! (https://stackoverflow.com/questions/59517128/implicit-declaration-of-function-beginthread-when-call-go-library-from-c-code)

I have this problem when compiling through this ".go" of any ".c"

Nitr0-G@WIN-T1RR1J259SK MINGW64 /c/Users/Nitr0-G/go/pkg/mod/github.com/!hyper!dbg/gui@v0.0.0-20230507125009-3c22aff60f6b
# go build -o gui.exe main.go
# runtime/cgo
gcc_libinit_windows.c: In function ‘_cgo_beginthread’:
gcc_libinit_windows.c:136:27: error: implicit declaration of function ‘_beginthread’; did you mean ‘_cgo_beginthread’? [-Werror=implicit-function-declaration]
  136 |                 thandle = _beginthread(func, 0, arg);
      |                           ^~~~~~~~~~~~
      |                           _cgo_beginthread
cc1: all warnings being treated as errors

Oh, I deleted that function and now I get another error promotion xD xD

# go build -o gui.exe main.go
# command-line-arguments
C:\msys64\mingw64\lib\go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
/usr/lib/gcc/x86_64-pc-msys/11.3.0/../../../../x86_64-pc-msys/bin/ld: cannot find -lmingwex: No such file or directory
/usr/lib/gcc/x86_64-pc-msys/11.3.0/../../../../x86_64-pc-msys/bin/ld: cannot find -lmingw32: No such file or directory
collect2: error: ld returned 1 exit status

Try go build.

Nitr0-G commented 1 year ago

@ddkwork Try go build.

Nitr0-G@WIN-T1RR1J259SK MINGW64 /c/Users/Nitr0-G/go/pkg/mod/github.com/!hyper!dbg/gui@v0.0.0-20230507125009-3c22aff60f6b
# go build
go: downloading github.com/hjson/hjson-go v3.3.0+incompatible
# github.com/ddkwork/hyperdbgui
C:\msys64\mingw64\lib\go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
/usr/lib/gcc/x86_64-pc-msys/11.3.0/../../../../x86_64-pc-msys/bin/ld: cannot find -lmingwex: No such file or directory
/usr/lib/gcc/x86_64-pc-msys/11.3.0/../../../../x86_64-pc-msys/bin/ld: cannot find -lmingw32: No such file or directory
collect2: error: ld returned 1 exit status

The same problem...

Nitr0-G commented 1 year ago

https://github.com/golang/go/issues/7265 I found something similar, but here is Cygwin. I use msys...

Nitr0-G commented 1 year ago

Hurray! I succeeded, I compiled this miracle.

Now the other one, how can I connect it to the user-mode and kernel-mode debugger?)

Nitr0-G commented 1 year ago

I apologize for the stupid questions. It's just that it's not written anywhere here

ddkwork commented 1 year ago

Hurray! I succeeded, I compiled this miracle.

Now the other one, how can I connect it to the user-mode and kernel-mode debugger?)

Not work now, because the table feature is not well, so i think need test this lib for replace it.

https://github.com/ddkwork/uxtest

Nitr0-G commented 1 year ago

@ddkwork

Not work now, because the table feature is not well, so i think need test this lib for replace it.

https://github.com/ddkwork/uxtest

Which specific folders do I need to replace:? Should I leave go.mod and go.sum and main.go(in uxtest)?

When I just copied the contents, then I get this error

Nitr0-G@WIN-T1RR1J259SK MINGW64 /c/Users/Nitr0-G/go/pkg/mod/github.com/!hyper!dbg/gui@v0.0.0-20230507125009-3c22aff60f6b
# go build
main.go:6:2: no required module provides package github.com/ddkwork/hyperdbgui/ux/asserts; to add it:
        go get github.com/ddkwork/hyperdbgui/ux/asserts
main.go:7:2: no required module provides package github.com/ddkwork/hyperdbgui/ux/menus; to add it:
        go get github.com/ddkwork/hyperdbgui/ux/menus
main.go:8:2: no required module provides package github.com/ddkwork/hyperdbgui/ux/tabs; to add it:
        go get github.com/ddkwork/hyperdbgui/ux/tabs
main.go:9:2: no required module provides package github.com/ddkwork/hyperdbgui/ux/toolbar; to add it:
        go get github.com/ddkwork/hyperdbgui/ux/toolbar

I also as above tried to try to enter go get and met the same problem

Nitr0-G commented 1 year ago

@ddkwork image How did you communicate with the kernel mode and user mode debugger? Do you just send commands to the cli and format the data, or do you do something differently?

Nitr0-G commented 1 year ago

@ddkwork image How did you communicate with the kernel mode and user mode debugger? Do you just send commands to the cli and format the data, or do you do something differently?

oh fuck. This is a gui for kernel mode only. I thought that somehow through IPC it still contacts user mode hyperdbg, but no. I apologize for the stupid question.