数美滑块逆向分析
本文最后更新于 364 天前,其中的信息可能已经有所发展或是发生改变。

本篇文章为作者在学习逆向过程中所做案例的经验分享,本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

接口分析

一共就两个接口

第一个接口携带这些参数,参数都能写死,然后返回背景图片还有rid

第二个接口只有这三个参数需要逆向

逆向分析

首先最好ast解混淆一下,我这边解混淆了没去替换而已,然后你可以一步步跟栈到这个位置,他这里有几个case 我们是case slide滑块这里,所以下断点

先分析tb,如图的这个参数是滑动距离,后面那个参数是指定的,如tb就用59fcff86,其他就用其他的,类似密钥吧,不同的密钥用不同的分支加密

把这个函数抠出来之后就得到这个,很好扣的自己慢慢分析吧

重点是看getEncryptContent这个函数,进去看看,这就是在加密tb了,如果没ast反混淆,可以根据如图的列表然后手动还原一下switch,然后接下来的几个参数的加密都是经过getEncryptContent的,只是后面携带的参数不一样而已(密钥),只需要把getEncryptContent搞出来,无论是导出还是扣代码,扣代码最好做一下解混淆

轨迹

​    def get_random_tracks(self, distance):
        """生成轨迹"""
        tracks = []
​
        y = 0
        v = 0
        t = 1
        current = 0
        mid = distance * 3 / 4
        exceed = 20
        z = t
​
        tracks.append([0, 0, 1])
​
        while current < (distance + exceed):
            if current < mid / 2:
                a = 15
            elif current < mid:
                a = 20
            else:
                a = -30
            a /= 2
            v0 = v
            s = v0 * t + 0.5 * a * (t * t)
            current += int(s)
            v = v0 + a * t
​
            y += random.randint(-5, 5)
            z += 100 + random.randint(0, 10)
​
            tracks.append([min(current, (distance + exceed)), y, z])
​
        while exceed > 0:
            exceed -= random.randint(0, 5)
            y += random.randint(-5, 5)
            z += 100 + random.randint(0, 10)
            tracks.append([min(current, (distance + exceed)), y, z])
​
        return tracks

结果

笔者水平有限,如有疑问,欢迎留言指正,一起交流,有任何问题可以添加我微信;
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇