Chuyu-Team / YY-Thunks

Fix DecodePointer, EncodePointer,RegDeleteKeyEx etc. APIs not found in Windows XP RTM.
MIT License
496 stars 102 forks source link

是否能支持golang #69

Closed heheda123123 closed 3 months ago

heheda123123 commented 5 months ago

golang新版本已经放弃了对xp和win7的支持,通过yy-thunks是否能让新版本golang仍然支持winxp和win7?

yangjuncode commented 4 months ago

链接过程不太一样,原理倒是行得通的,不过应该要patch go源码才行了,xp希望不大,win7应该还是可以的

mingkuang-Chuyu commented 3 months ago

建议你试试,主要是我并不清楚需要修改什么……

zhuxiujia commented 3 months ago

golang新版本已经放弃了对xp和win7的支持,通过yy-thunks是否能让新版本golang仍然支持winxp和win7?

经过测试,go编译器降低到1.10版本(不需要YY-Thunks)可以支持xp和win7,因为go的语法简单几乎不更新语法破坏性变更,都是向下/上兼容。你代码修改量并不大,建议不要用例如 any改为interface{} 可以完美支持xp 我们已经用go 1.10版本发布到了生产,问题不大

yangjuncode commented 3 months ago

建议你试试,主要是我并不清楚需要修改什么……

golang 新版本会用一些新的api, 当然是旧版本系统没有的。如: https://github.com/golang/go/blob/2e064cf14441460290fd25d9d61f02a9d0bae671/src/runtime/os_windows.go#L250C2-L254C77

        bcryptPrimitives := windowsLoadSystemLib(bcryptprimitivesdll[:])
        if bcryptPrimitives == 0 {
                throw("bcryptprimitives.dll not found")
        }
        _ProcessPrng = windowsFindfunc(bcryptPrimitives, []byte("ProcessPrng\000"))
mingkuang-Chuyu commented 3 months ago

请直接提供使用yY-Thunks后旧系统任然缺失的API。 或者提供构建产物,这样我可以直接获取API导入关系。

现在这样简单的扩列一些局部代码对问题其实没有太大帮助

获取Outlook for Androidhttps://aka.ms/AAb9ysg


From: yangjun @.> Sent: Friday, April 5, 2024 6:21:56 PM To: Chuyu-Team/YY-Thunks @.> Cc: mingkuang @.>; Comment @.> Subject: Re: [Chuyu-Team/YY-Thunks] 是否能支持golang (Issue #69)

建议你试试,主要是我并不清楚需要修改什么……

golang 新版本会用一些新的api, 当然是旧版本系统没有的。如: https://github.com/golang/go/blob/2e064cf14441460290fd25d9d61f02a9d0bae671/src/runtime/os_windows.go#L250C2-L254C77

    bcryptPrimitives := windowsLoadSystemLib(bcryptprimitivesdll[:])
    if bcryptPrimitives == 0 {
            throw("bcryptprimitives.dll not found")
    }
    _ProcessPrng = windowsFindfunc(bcryptPrimitives, []byte("ProcessPrng\000"))

― Reply to this email directly, view it on GitHubhttps://github.com/Chuyu-Team/YY-Thunks/issues/69#issuecomment-2039432482, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEX7GZI7I3EI5E4KDHOJ7TDY3Z3MJAVCNFSM6AAAAABCC7ZKPKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZZGQZTENBYGI. You are receiving this because you commented.Message ID: @.***>

yangjuncode commented 3 months ago

在go上应该是应用不了yy-thunks,毕竟go无法用vc, 也没有 c/c++那样的链接过程。 只是原理相通,可以模仿处理,但处理方法需要根据go来特殊处理,目前我能想到的是需要patch golang src才行

mingkuang-Chuyu commented 3 months ago

@yangjuncode 那很抱歉,只能作为无效反馈关闭了。因为YY-Thunks是借助于链接时Hook,而go的情况看YY-Thunks的原理差异较大,不是顺手可以完成的事情。

本人对go也没有什么兴趣,暂时也不会特意去支持go。