吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17532|回复: 175
上一主题 下一主题
收起左侧

[Web逆向] 某某电影网页wasm逆向思路

    [复制链接]
跳转到指定楼层
楼主
Pueritia 发表于 2023-4-13 20:36 回帖奖励
本帖最后由 Pueritia 于 2023-4-13 20:40 编辑

本文仅供学习交流使用,如有侵权,联系我删除。


网址:aHR0cHM6Ly9tLndhbmRhY2luZW1hcy5jb20vbG9naW4=
发送验证码后,发现协议头的中的check加密了,在发送方法下断点,往下跟踪

找到了加密的方法gowasm.sp,将时间戳,url头等信息传进去加密。

跟进去发现调用了wasm的resume方法,本人新手,面对wasm毫无思路,在多方搜索后无果后最后注册吾爱发现不少wasm的逆向文章,
最后参考的:https://www.52pojie.cn/forum.php?mod=viewthread&tid=1492577 成功逆向。
找到wasm的加载的地方,打断点,刷新下网页让他重新加载wasm,注入脚本:


[JavaScript] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
wasm = i.instance.exports;
memories = [wasm.memory]
viewDWORD = (addr) =>{
    const arr = new Uint32Array(memories[0].buffer.slice(addr, addr + 16));
    return arr;
};
viewChar = (addr, size = 16) =>{
    const arr = new Uint8Array(memories[0].buffer.slice(addr, addr + size));
    return String.fromCharCode.apply(null, arr);
};
viewHEX = (addr, size = 16) =>{
    const arr = new Uint8Array(memories[0].buffer.slice(addr, addr + size));
    return (Array.from(arr, x =>x.toString(16).padStart(2, '0')).join(' '));
};
viewHexCode = (addr, size = 16) =>{
    const arr = new Uint8Array(memories[0].buffer.slice(addr, addr + size));
    return (Array.from(arr, x =>'0x' + x.toString(16).padStart(2, '0')).join(', '));
};
dumpMemory = (addr, size = 16) =>{
    const arr = new Uint8Array(memories[0].buffer.slice(addr, addr + size));
    return arr;
};
viewString = (addr, size = 16) =>{
    const arr = new Uint8Array(memories[0].buffer.slice(addr, addr + size));
    let max = size;
    for (let i = 0; i < size; i++) {
        if (arr[i] === 0) {
            max = i;
            break;
        }
    }
    return String.fromCharCode.apply(null, arr.slice(0, max));
};
search = function(stirng) {
    const m = new Uint8Array(memories[0].buffer);
    // vid=35402, 9AAizQZJ
    // vid=20268, a3fMpSkB
    const k = Array.from(stirng, x =>x.charCodeAt());
 
    const match = (j) =>{
        return k.every((b, i) =>m[i + j] === b);
    };
    const max = Math.min(10_000_000, m.byteLength || m.length);
    for (let i = 0; i < max; i++) {
        if (match(i)) {
            console.info(i);
        }
    }
    console.info('done');
}

注入之后就可以通过view方法来查看wasm申请的内存,非常方便。
接上面,在wasm的入口继续往下追踪,发现实际是通过md5加密,在加密方法的入口处下断点,通过viewChar来观察入参。


发现有数据,增加长度后就发现了加密前的字符串,经过验证确认gowasm.sp传入的参数经过加盐操作后md5就得到了check。









同样的,在另一个地方的加密调用的gowasm.sa方法 跟进去后发现使用的AES加密,
这个算法不懂,因为这个wasm是go语言的转的,百度go的ASE算法实现

在wasm找到对应的方法,下断点,成功获取到key。然后mode 和 padding都试一遍就试出来了。




















免费评分

参与人数 53威望 +2 吾爱币 +157 热心值 +42 收起 理由
a532a856 + 1 我很赞同!
feichen0921 + 1 + 1 谢谢@Thanks!
小宋6466 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
Coldandcolder + 1 + 1 热心回复!
心比天傲 + 1 + 1 谢谢@Thanks!
熊猫拍板砖 + 2 + 1 感谢大佬解决了我的疑惑
sunny5888 + 1 谢谢@Thanks!
Paul3 + 1 我很赞同!
tinyclown + 1 + 1 我很赞同!
parallel + 1 谢谢@Thanks!
wxn2023 + 1 + 1 热心回复!
Jazz0day + 1 我很赞同!
Ninja18 + 1 学习了,小七编程助手可以共享下吗?
三滑稽甲苯 + 2 + 1 用心讨论,共获提升!
KDds + 1 谢谢@Thanks!
Diamondzl + 1 + 1 我很赞同!
pdc9911 + 1 + 1 用心讨论,共获提升!
liusu01 + 1 + 1 热心回复!
wanjingbo + 1 谢谢@Thanks!
Joinwib + 1 + 1 我很赞同!
Mtorn + 1 + 1 我很赞同!
KITE8866 + 1 + 1 谢谢@Thanks!
timeni + 1 + 1 用心讨论,共获提升!
明眸自定义 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
meilidemm + 1 用心讨论,共获提升!
prince_cool + 2 + 1 我很赞同!
hanlaoshi + 1 + 1 谢谢@Thanks!
liusg + 1 + 1 我很赞同!
涛涛不绝00 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yyb414 + 1 + 1 热心回复!
yebaoer + 1 + 1 谢谢@Thanks!
dejjai + 1 + 1 谢谢@Thanks!
wangkaixuan0122 + 1 + 1 我很赞同!
qaqa5 + 1 + 1 我很赞同!
likewebxcj + 1 用心讨论,共获提升!
飘零未忍 + 1 + 1 用心讨论,共获提升!
onlywey + 1 + 1 用心讨论,共获提升!
1MajorTom1 + 1 热心回复!
myease + 1 + 1 谢谢@Thanks!
N1san + 1 + 1 热心回复!
liangkuai + 1 + 1 我很赞同!
lgc81034 + 1 谢谢@Thanks!
fengbolee + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yixi + 1 + 1 谢谢@Thanks!
biog + 1 用心讨论,共获提升!
这是追求不是梦 + 1 + 1 热心回复!
漁滒 + 3 + 1 我很赞同!
L的追梦人生 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
R0z + 1 + 1 我很赞同!
涛之雨 + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
抱歉、 + 1 用心讨论,共获提升!
pjy612 + 1 + 1 学习了,收藏
mn126kk72 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
alanhays 发表于 2023-4-26 17:42
wblylh 发表于 2023-4-22 09:16
网址:aHR0cHM6Ly9tLndhbmRhY2luZW1hcy5jb20vbG9naW4=

怎么能还原网址?

Base64 解码

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
wblylh + 1 + 1 热心回复!

查看全部评分

推荐
zhy1992 发表于 2023-4-14 11:15
3#
路人王2021 发表于 2023-4-14 16:19
4#
tybo8083006 发表于 2023-4-14 16:24
好牛逼的样子
5#
vipzzc 发表于 2023-4-14 16:58
这个不错
6#
MWH 发表于 2023-4-14 18:29
非常有帮助,感谢老哥分享
7#
wumianren 发表于 2023-4-14 19:05
学习一下
8#
ppplp 发表于 2023-4-14 19:52
学习一下啦
9#
a524559 发表于 2023-4-14 20:22
这是抓包吗
10#
swl0515 发表于 2023-4-14 22:09
学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-3-18 06:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表