Closed SinaKarvandi closed 4 months ago
我记得以前手动编写类似这个大文件的绑定代码,写得怀疑人生,哈哈😃,现在我准备删除以前的绑定代码,在检查完还有没有什么有价值的代码之后。
https://github.com/HyperDbg/gui/blob/main/bin%2Fdebug%2FSDK%2FImports%2FHyperDbgVmmImports.h.go
These headers are for the kernel mode.
This is the hprdbgctrl's header for user-mode:
Also the 'hprdbgctrl.dll' will be renamed to 'LibHyperDbg.dll' in the future to make a naming based on other software conventions. I'll let you know once this happens.
此外,将来“hprdbgctrl.dll”将重命名为“LibHyperDbg.dll”,以根据其他软件惯例进行命名。一旦发生这种情况,我会通知您。
很高兴bind工作基本上完成,需要调整合并的头文件几个地方即可测试加载dll了,生成后的文件只有2-3处错误,我可以在生成后手动改一下即可,后续再花时间完美修复。
我将上传让clang成功执行的头文件,前提是不得引入任何Windows sdk头文件,这会生成很多垃圾代码。
您diff一下然后执行以下命令,看到0 err 0 warning则可以让gengo顺利工作。
您来修复头文件吧,我有点搞不懂。
clang -fsyntax-only -nobuiltininc -Xclang -ast-dump=json combined_headers.h
clang -fsyntax-only -nobuiltininc -emit-llvm -Xclang -fdump-record-layouts -Xclang -fdump-record-layouts-complete combined_headers.h
这是绑定后的干净的代码 https://github.com/HyperDbg/gui/blob/main/gengo%2Fbind%2FsdkMerge%2FHPRDBGCTRL.go
Nice job that's great.
Also, for your information, since we want to export HyperDbg for all programming languages (C/C++/Go/Rust/Python/C#) for people to use SDK, we will later use your binder for the support of the Go to the main HyperDbg project. I'll let you know once the new SDK needs to be used.
干得好,太棒了。
另外,供您参考,由于我们想将 HyperDbg 导出到所有编程语言(C/C++/Go/Rust/Python/C#),以供人们使用 SDK,我们稍后将使用您的绑定器来支持 Go 到主 HyperDbg 项目。一旦需要使用新的 SDK,我会通知您。
我的意思是我对合并后的头文件执行了我不确定的修改来使它成功dump ast。所以需要您把我的修改和您原来的文件做个diff操作并按照您的方式修复它,切记不要导入win sdk头文件。因为我修改的我不确定,还注释掉好几行,您来修复头文件吧。只需执行我发给你的clang命令检查是否输出错误和警告⚠️
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 12:12 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
Nice job that's great.
Also, for your information, since we want to export HyperDbg for all programming languages (C/C++/Go/Rust/Python/C#) for people to use SDK, we will later use your binder for the support of the Go to the main HyperDbg project. I'll let you know once the new SDK needs to be used.
干得好,太棒了。
另外,供您参考,由于我们想将 HyperDbg 导出到所有编程语言(C/C++/Go/Rust/Python/C#),以供人们使用 SDK,我们稍后将使用您的绑定器来支持 Go 到主 HyperDbg 项目。一旦需要使用新的 SDK,我会通知您。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
From what I can see, you made these changes, Am I right?
据我所见,您做了这些更改,对吗?
是的,我不确定如何100%正确的修复,所以您来重新修复它
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 12:28 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
From what I can see, you made these changes, Am I right?
据我所见,您做了这些更改,对吗?
diff1.png (view on web)
diff2.png (view on web)
diff3.png (view on web)
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
Okay, I see Go doesn't support static_assert. So, we need to move them to a separate header.
好的,我看到 Go 不支持 static_assert。 因此,我们需要将它们移至单独的标题。
静态检查可以翻译为函数实现,只要让c编译器识别,我做了一个mock但失败了
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 12:30 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
Okay, I see Go doesn't support static_assert. So, we need to move them to a separate header.
好的,我看到 Go 不支持 static_assert。 因此,我们需要将它们移至单独的标题。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
I'll move it to a new header to make it convenient for you.
我会将其移至新的标题以方便您使用。
如果您可以让clang识别它就可以保持现状,记住不是clang++
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 12:34 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
I'll move it to a new header to make it convenient for you.
我会将其移至新的标题以方便您使用。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
Okay, I see Go doesn't support static_assert. So, we need to move them to a separate header. I'll fix it now.
好的,我明白 Go 不支持 static_assert。 因此,我们需要将它们移至单独的标题。 我现在就修复它。
您准备用函数实现吗?sizeof 结构体传入大小到新的函数?
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 12:38 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
Okay, I see Go doesn't support static_assert. So, we need to move them to a separate header. I'll fix it now.
好的,我明白 Go 不支持 static_assert。 因此,我们需要将它们移至单独的标题。 我现在就修复它。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
No, we'll move it to a separate file and you can ignore this file for the SDK.
不,我们会将其移至单独的文件,您可以忽略 SDK 的此文件。
Will it solve the problem this way?
这样能解决问题吗?
You can check changes here: https://github.com/HyperDbg/HyperDbg/tree/dev
喔
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 12:51 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
No, we'll move it to a separate file and you can ignore this file for the SDK.
不,我们会将其移至单独的文件,您可以忽略 SDK 的此文件。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
这样应该解决了,不过不检查内存分配大小没什么副作用吗?
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 12:53 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
Will it solve the problem this way?
这样能解决问题吗?
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
先不管副作用,按照你自己的正确逻辑接着处理剩下的diff吧
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 12:53 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
Will it solve the problem this way?
这样能解决问题吗?
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
No, the checks are still performed, it's on a separate file that you can easily ignore that file.
不,检查仍会进行,但它在一个单独的文件中,您可以轻松忽略该文件。
我重新合并了sdk头文件,因为似乎所有函数都在合并中丢失了
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 13:22 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
No, the checks are still performed, it's on a separate file that you can easily ignore that file.
不,检查仍会进行,但它在一个单独的文件中,您可以轻松忽略该文件。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
剩下的就是处理dump出来的宏定义为常量列表,这需要精确的过滤,我试了几种思路都不精确
https://github.com/HyperDbg/gui/blob/main/gengo%2Fbind%2FsdkMerge%2Fsdk_test.go#L55-L134
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 13:22 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
No, the checks are still performed, it's on a separate file that you can easily ignore that file.
不,检查仍会进行,但它在一个单独的文件中,您可以轻松忽略该文件。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
Are you converting C headers to Go files manually? Or automatically?
您是否手动将 C 头文件转换为 Go 文件? 还是自动?
Are you converting C headers to Go files manually? Or automatically?
您是否手动将 C 头文件转换为 Go 文件? 还是自动?
不,我是这样合并的 https://github.com/HyperDbg/gui/blob/main/gengo%2Fbind%2FsdkMerge%2Fsdk_test.go#L22-L41
绑定除了宏定义以外的头文件是这样 https://github.com/HyperDbg/gui/blob/main/gengo%2Fbind%2FsdkMerge%2Fsdk_test.go#L136-L180
上面是绑定宏的单元测试,最上面一个是合并头文件的单元测试。为什么这么麻烦?因为clang解析ast不像go语言解析ast明了,它需要解析ast,解析结构体对象布局并填充到ast节点,加上合并头文件的操作,最后还要用另外的clang命令dump宏定义到文件并生成go语言的常量列表,3-4步才能完成自动化绑定工作。
然而go语言操作ast直接是一步到位,所有语法相关的东西全部都会放进ast。clang的ast设计有点啰嗦和臃肿。
and how do you convert them from C to Go?
以及如何将它们从 C 转换为 Go?
Are you converting C headers to Go files manually? Or automatically?
您是否手动将 C 头文件转换为 Go 文件? 还是自动?
c头文件转go文件是代码自动化生成的,不是手动操作,但是前提是处理掉我和你说的所有diff,确保0错误0警告⚠️,剩下的diff你想到什么思路了吗?
我刚刚不是贴了转换实现的代码链接了吗?
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 14:04 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
and how do you convert them from C to Go?
以及如何将它们从 C 转换为 Go?
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
目前的实现不能称作转换或翻译,只能叫它绑定。因为目前只是绑定结构体,常量和函数签名,然后加载dll动态库,只是一种call二进制的行为。
转换或者翻译的话是完全用go实现ctrol或者用clang ast模式转换ctrol的所有c或者cpp源代码为go,c还可以,cpp的转换目前不成熟。cpp的内存布局和c的不可能一样,而go和rust,zig之列的,他们的ffi的内存布局只和c语言的内存布局对应,并在各自的编译器内实现这种对应行为。所以很多框架的bind操作都不会支持cpp,除了新出的语言carbon。
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 14:04 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
and how do you convert them from C to Go?
以及如何将它们从 C 转换为 Go?
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
and how do you convert them from C to Go?
以及如何将它们从 C 转换为 Go?
https://github.com/HyperDbg/gui/blob/main/gengo%2Fbind%2FsdkMerge%2Fsdk_test.go#L136-L180
我刚刚不是贴了转换实现的代码链接了吗?
I'm not sure if I see it. 我不确定我是否看到了它。
c头文件转go文件是代码自动化生成的,不是手动操作,但是前提是处理掉我和你说的所有diff,确保0错误0警告⚠️,剩下的diff你想到什么思路了吗?
It works without error. 它可以正常工作。
and how do you convert them from C to Go? 以及如何将它们从 C 转换为 Go?
https://github.com/HyperDbg/gui/blob/main/gengo%2Fbind%2FsdkMerge%2Fsdk_test.go#L136-L180
Got it 👍
i will test soon
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 15:41 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
c头文件转go文件是代码自动化生成的,不是手动操作,但是前提是处理掉我和你说的所有diff,确保0错误0警告⚠️,剩下的diff你想到什么思路了吗?
It works without error. 它可以正常工作。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
我刚刚不是贴了转换实现的代码链接了吗?
I'm not sure if I see it. 我不确定我是否看到了它。
我只看到您仅仅处理了静态检查的diff,其余的diff似乎没有处理。您执行过我之前发给你的两条clang命令了吗?我猜还会收到10多个error
clang -fsyntax-only -nobuiltininc -Xclang -ast-dump=json combined_headers.h
clang -fsyntax-only -nobuiltininc -emit-llvm -Xclang -fdump-record-layouts -Xclang -fdump-record-layouts-complete combined_headers.h
merged_headers.h:33:9: error: unknown type name 'wchar_t'
33 | typedef wchar_t WCHAR;
| ^
merged_headers.h:1251:5: error: unknown type name 'PVOID'
1251 | PVOID Context;
| ^
merged_headers.h:1338:5: error: unknown type name 'HANDLE'
1338 | HANDLE hEvent;
| ^
merged_headers.h:1405:5: error: unknown type name 'PVOID'
1405 | PVOID TargetAddress;
| ^
merged_headers.h:1406:5: error: unknown type name 'PVOID'
1406 | PVOID HookFunction;
| ^
merged_headers.h:1418:5: error: unknown type name 'SIZE_T'
1418 | SIZE_T PhysicalAddress;
| ^
merged_headers.h:2401:5: error: unknown type name 'LIST_ENTRY'
2401 | LIST_ENTRY
| ^
merged_headers.h:2405:5: error: unknown type name 'time_t'; did you mean 'size_t'?
2405 | time_t CreationTime; // Date of creating this event
| ^~~~~~
| size_t
note: 'size_t' declared here
merged_headers.h:2443:5: error: unknown type name 'PVOID'
2443 | PVOID CommandStringBuffer;
| ^
merged_headers.h:3087:5: error: unknown type name 'PVOID'
3087 | PVOID BufferAddress;
| ^
merged_headers.h:3792:5: error: unknown type name 'PVOID'
3792 | PVOID CustomCodeBufferAddress;
| ^
merged_headers.h:4138:22: error: use of undeclared identifier 'MAX_PATH'
4138 | char FilePath[MAX_PATH];
| ^
merged_headers.h:4139:30: error: use of undeclared identifier 'MAX_PATH'
4139 | char ModuleSymbolPath[MAX_PATH];
| ^
merged_headers.h:4148:5: error: unknown type name 'wchar_t'
4148 | wchar_t FilePath[MAX_PATH];
| ^
merged_headers.h:4148:22: error: use of undeclared identifier 'MAX_PATH'
4148 | wchar_t FilePath[MAX_PATH];
| ^
merged_headers.h:4235:20: error: unknown type name 'bool'
4235 | IMPORT_EXPORT_CTRL bool HyperDbgVmxSupportDetection();
| ^
merged_headers.h:4254:20: error: unknown type name 'bool'
4254 | IMPORT_EXPORT_CTRL bool HyperDbgContinuePreviousCommand();
| ^
merged_headers.h:4255:20: error: unknown type name 'bool'
4255 | IMPORT_EXPORT_CTRL bool HyperDbgCheckMultilineCommand(char * CurrentCommand, bool Reset);
| ^
merged_headers.h:4255:78: error: unknown type name 'bool'
4255 | IMPORT_EXPORT_CTRL bool HyperDbgCheckMultilineCommand(char * CurrentCommand, bool Reset);
| ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
https://github.com/ddkwork/gui/blob/main/gengo/bind/sdkMerge/merged_headers.h
这是我调整的合并顺序
2024-06-21 18:33:13 Trace -> --------- title --------- │ ------------------ info ------------------ //runtime.doInit1+0xec C:/Program Files/Go/src/runtime/proc.go:7176
2024-06-21 18:33:13 Trace -> merge │ bugfix.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader+0x258 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:76
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Headers\BasicTypes.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Headers\Connection.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Headers\Constants.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Headers\DataTypes.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Headers\ErrorCodes.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Headers\Events.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Headers\HardwareDebugger.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Headers\Ioctls.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Headers\RequestStructures.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Headers\Symbols.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Modules\HyperLog.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Modules\VMM.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Imports\HyperDbgCtrlImports.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Imports\HyperDbgHyperLogImports.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Imports\HyperDbgHyperLogIntrinsics.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Imports\HyperDbgRevImports.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Imports\HyperDbgScriptImports.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Imports\HyperDbgSymImports.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
2024-06-21 18:33:13 Trace -> merge │ ..\..\..\bin\debug\SDK\Imports\HyperDbgVmmImports.h //github.com/can1357/gengo/bind/sdkMerge.TestMergeHeader.func2+0xc7 D:/workspace/workspace/branch/gui/gengo/bind/sdkMerge/bind_test.go:82
Ah, I forgot to change wchar_t, but why do you change wchar_t to short? 🤔 啊,我忘了更改 wchar_t,但是你为什么要将 wchar_t 改为 short?🤔
I'm also going on a trip this weekend. So, probably won't have access to my laptop until Monday.
我这个周末也要去旅行。所以可能要到周一才能使用我的笔记本电脑。
我不知道改成什么类型合适,不改的话clang报错啊
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 18:48 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
Ah, I forgot to change wchar_t, but why do you change wchar_t to short? 🤔 啊,我忘了更改 wchar_t,但是你为什么要将 wchar_t 改为 short?🤔 image.png (view on web)
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
根据我的测试和使用我最新提交的合并文件,还有20个错误等着处理,clang有时候像卡住了一样,奇怪。
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 18:48 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
Ah, I forgot to change wchar_t, but why do you change wchar_t to short? 🤔 啊,我忘了更改 wchar_t,但是你为什么要将 wchar_t 改为 short?🤔 image.png (view on web)
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
wchar_t is a primitive type for string. I'm pretty sure go should have a similar data type. I asked ChatGPT and it told me the equivalent in Go is 'rune'.
wchar_t 是字符串的原始类型。我很确定 go 应该有类似的数据类型。我问了 ChatGPT,它告诉我 Go 中的等价物是“rune”。
你可以使用我发给你的两条clang命令快速修复执行错误吗?这将加速我后面的进度,因为绑定浪费的时间太多了,后续还有ui上的很多代码需要调整。
Should I run this on HyperDbg? Send me the commands to run.
我应该在 HyperDbg 上运行它吗?请将要运行的命令发送给我。
在绑定之前不是讨论go是否支持c的类型,而是应该研究clang能不能识别该类型的问题。要是手动绑定,宽字符集的字符串我可以写出3种以上的转换来支持它,然而对于自动绑定,这些没有意义,而应该处理clang dump ast的过程中是否发生错误。
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 18:58 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
wchar_t is a primitive type for string. I'm pretty sure go should have a similar data type. I asked ChatGPT and it told me the equivalent in Go is 'rune'.
wchar_t 是字符串的原始类型。我很确定 go 应该有类似的数据类型。我问了 ChatGPT,它告诉我 Go 中的等价物是“rune”。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
这两条命令我已经发了两遍给你了,我感觉你一次测试都没做。
---Original--- From: "Sina @.> Date: Fri, Jun 21, 2024 19:01 PM To: @.>; Cc: @.**@.>; Subject: Re: [HyperDbg/gui] Action needed from Sina (Issue #76)
Should I run this on HyperDbg? Send me the commands to run.
我应该在 HyperDbg 上运行它吗?请将要运行的命令发送给我。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were assigned.Message ID: @.***>
I noticed there are many issues in this repo, and I'm not sure which ones require my action. To improve our communication, I've created this Issue. Please post anything that needs my attention here, so I won't miss any of them.
我注意到这个 repo 中有很多问题,我不确定哪些需要我处理。为了改善我们的沟通,我创建了这个 Issue。请在此处发布任何需要我注意的内容,这样我就不会错过任何内容。