V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tmtstudio
V2EX  ›  程序员

大佬们来试试我的 wasm 的强度,主要实现的接口加密

  •  
  •   tmtstudio · 85 天前 · 3016 次点击
    这是一个创建于 85 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/Kevin-Red/bilidown/blob/master/encode.wasm

    密钥:AhCCdbacwc8II86TBb3HA98ID439A5bjN38xB8fEg5bMka1Aq79Fhbdwke8Bi9f2G09j9eaUwfcU087hB02UA85rQ1aGE8daF395Ae9wA02hSb90C83zAc0Wmc35E39wwa4kg9dMg9aMJceId9beA93Tge9WE371A8esA4cmoda0G83dB04zAd8FMbb/Nb7JS633sfcdL28o352OP9bs023aZ13nr7b+Y15+5c5/n38rh52l72dDA3bTQ7aKh9aRzb5GI69lU68C940/lab9R65w+06gQffdq44tA25Es803q5aDV23CLb2tUd907cb4Y26w036WF8bEq2a1g22zr10NYc8J/6fzea04pd5l022e/e4or1asVfdwLef5J74tOf2ZG89JC51qdc7euff1X21Xo9bsH6bM179jw7eeO5bP/a5Ej061r74aT44t+cckh44x938igc5eWafZ524Wb22NT2adpfeXqdf5wf8pOe03WfbvFebzw07tx7bfcf3QO93A32eFDfcqy0cVi50zI41zz80oz21wk9eVU7fQwc2s85dTa69EA61zPefMyc0OOc4RPa5Dn5e/EecSj201Xffr98e8b7agU9cf4e17Db2D5c9be04bk076tbfpIcaSpd3Jc26y3000T37uf818Re59LeaRtb4dv98rt347ya2yg96wB279JPI5vXNwwF8OgRdj6pTdmviRDarlSwVmEAMsD9z3BsVAgMBAAECgYAV4z5LBu7GG2g4OBB1kfE5pG/Z8Zs+eFkLbOBsR3UrmhfFrOlg0b+DK6sLhS6Js0nGx696FL1Yvn2/Oq4R92hWcLze3cBAQ5ghH4RBq0IJQ/OXdLRsFkBxg8+sb4mHJ1wLhphwGb5slksB2NLvHFwWBFiv9kLGHq1l17702RLOQQJBAPX0wvOZ6HwPyruTAU7RGKQO4M1FV8E3KlXcS2aWxSGYcaf6qpTiJbG7n6EOjT/1ZAlnYC17GFYvO+Uf6UnicP8CQQDLTJuXhDw8C80qC+IuyAgpHn4vSP0aRg9Ew+W+vW8dmWItDhULwNjWf8hv7ZhcLUmlCd042PLKcTmEicMzMJ/rAkEAgKpmQeFFyYDJYY7ppD2mUkymNTwNSDp/nyL7HtPIlGaXLnTnP7N+XJf2Td667baFepXlrmUyugNDpf0noUsgKQJABsJmTfRcmFaAHMzGWW3XL57O7T2NBMmdiljFE8Fyp1ZJOFxGgNyJmSAohugsb6wlzbH1RAWalPaMxgZakiIkvwJBAN5wlsgoaKSuW3k4NDuTJAI6nKZEq/YRM36Y3pLdWPVW1gn9XtCVrH56w7esgILjPM+cL+JRWcqBHk/LImh6Bdw=

    密文: H/ePhsOKlI68IMwwW6V1nn9821KEf0GvCbPa6pspctmfsVroLOBliq8nJon+Doh9MXpY4MKJoK01TQl26y0xfsu9u+lF4JSf3QllNgO8n/ZOQDvSAAeLI55YlXnwju0IMtiYy3WiFmBPz8zved1c67/E05QXxEMJk3N5jOlrj94=-qop+vSfg/BsVWTfzkesiFyFyDW+WadXvZQEF/c4PseGjYck8PcP85QFkv8orhK1W

    23 条回复    2024-09-09 09:34:59 +08:00
    tool2dx
        1
    tool2dx  
       85 天前   ❤️ 1
    用 wabt 看了一眼,就导出了三个函数
    Export[9]:
    - memory[0] -> "memory"
    - func[56] <AAA> -> "AAA"
    - func[35] <BBB> -> "BBB"
    - func[47] <CCC> -> "CCC"

    函数类型都有,大概率 rsa ,运行期下断点替换内容就行了。
    tmtstudio
        2
    tmtstudio  
    OP
       85 天前
    @tool2dx #1 还加了校验,防止替换参数🤤
    tool2dx
        3
    tool2dx  
       85 天前
    @tmtstudio 那你不如把代码放到后端运行,看不见代码岂不是更安全。
    tmtstudio
        4
    tmtstudio  
    OP
       85 天前
    @tool2dx #3 加解密用 wasm 运行速度比较有优势,如果全放后端,每调一个接口得同时调加密解密吧,服务器扛不住
    tool2dx
        5
    tool2dx  
       85 天前
    @tmtstudio 小看服务器了,https 握手也是 rsa 加密的,4 核能跑到几万 QPS 。

    如果你觉得 rsa 慢,那就换 aes 加密,这个有硬件加速,运行飞快。
    tmtstudio
        6
    tmtstudio  
    OP
       85 天前
    @tool2dx #5 是带宽扛不住🤣密文比较长
    tool2dx
        7
    tool2dx  
       85 天前
    @tmtstudio 这密文不算长的,一个 IP 包 1400 字节,足够放下了。
    tmtstudio
        8
    tmtstudio  
    OP
       85 天前
    @tool2dx #7 我贴的密文对应的明文就几个字符,正常会非常长的
    tool2dx
        9
    tool2dx  
       85 天前
    @tmtstudio 学 TLS 协议,密文用 aes JS 本地加密解密,服务器 API 发送的密钥本身才是 rsa 加密。

    什么都上 rsa ,不太合适。
    murmur
        10
    murmur  
       85 天前
    wasm 的编译器这么垃圾么 怎么这东西都编译了

    /Users/kevin/.cargo/registry/src/mirrors.ustc.edu.cn-61ef6e0cd06fb9b8/num-bigint-dig-0.8.4/src/bigrand.rs

    另外,别总想着接口加密,最后还是靠风控,一般来说遇到这种情况都用无头浏览器搞定,省事还不怕你折腾
    LLaMA2
        11
    LLaMA2  
       85 天前
    你调用 wasm 的 js 代码呢,拿出来看看,我试试看能不能找到
    PTLin
        12
    PTLin  
       85 天前
    @murmur 这是 rustc 的问题,项目的一些信息会存在在二进制中,被吐槽好久了,前几个月还说要改来着。
    GooMS
        13
    GooMS  
       85 天前 via Android
    没用,抖音 wasm 解密照样满天飞
    scyuns
        14
    scyuns  
       85 天前
    看不懂 就看到一个 main 文件
    lisxour
        15
    lisxour  
       85 天前
    @murmur rust 的老毛病了,有办法将 cargo root 部分去掉,但是后面的文件路径目前没有无损的解决方法。
    eairjhioaegnh
        16
    eairjhioaegnh  
       85 天前
    @murmur 我发现 mac 平台的 app 也有这毛病,但不是 rust 的
    dimwoodxi27
        17
    dimwoodxi27  
       85 天前
    300kb 感觉略大,我编译的 aes 加密 wasm 能减到 15kb
    aliipay
        18
    aliipay  
       85 天前
    @dimwoodxi27 怎么搞的?
    dimwoodxi27
        19
    dimwoodxi27  
       84 天前
    @aliipay cgo+wasm-opt
    aliipay
        20
    aliipay  
       84 天前
    @dimwoodxi27 aes 在 cgo 里面实现吗? 这个代码是直接用的某个开源库的?
    dimwoodxi27
        21
    dimwoodxi27  
       83 天前
    @aliipay 我说的是编译器
    aliipay
        22
    aliipay  
       83 天前
    @dimwoodxi27 啊, 不是 wasm 体积 15KB 吗? 我试了用 openssl 1.1.1 版本编译出来 wasm 大概有 900KB
    dimwoodxi27
        23
    dimwoodxi27  
       80 天前
    @aliipay 是的 15kb ,openssl 我不知道,我用的是 crypto/aes ,总共包使用才 3 个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:25 · PVG 05:25 · LAX 13:25 · JFK 16:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.