美文网首页
Charles的应用

Charles的应用

作者: 一吻江山 | 来源:发表于2019-05-12 10:13 被阅读0次

[TOC]

Rewrite应用

案例01

问题:今日头条极速版App每天的阅读推送文章任务因为每天收到的推送很少,因而不能得很高的积分,怎样把普通文章的阅读变为推送文章的阅读呢?

思考:对比普通文章的阅读与推送文章的阅读发出的网络数据,找出差异

普通文章的阅读与推送文章的阅读达到奖励标准时,都用相同的接口https://is.snssdk.com/score_task/v1/task/get_read_bonus/

# 普通阅读文章/视频
https://is.snssdk.com/score_task/v1/task/get_read_bonus/?fp=xxx&...&group_id=6689697061983486472

# 推送文章的阅读
https://is.snssdk.com/score_task/v1/task/get_read_bonus/?fp=xxx&...&&impression_type=push&group_id=6689697061983486472

对比上面的接口数据发现:
推送阅读只比普通阅读多出了impression_type=push的Query String

解决:用Charles的Rewrite功能Add Query Param来增加impression_type=push解决问题

Rewrite功能-Type:Add Query Param

上面的get_read_bonus重写规则Export导出的get_read_bonus.xml文件内容如下:

<?xml version='1.0' encoding='UTF-8' ?>
<?charles serialisation-version='2.0' ?>
<rewriteSet-array>
  <rewriteSet>
    <active>true</active>
    <name>get_read_bonus</name>
    <hosts>
      <locationPatterns>
        <locationMatch>
          <location>
            <protocol>https</protocol>
            <host>is.snssdk.com</host>
            <path>/score_task/v1/task/get_read_bonus/</path>
          </location>
          <enabled>true</enabled>
        </locationMatch>
      </locationPatterns>
    </hosts>
    <rules>
      <rewriteRule>
        <active>true</active>
        <ruleType>8</ruleType>
        <matchHeader></matchHeader>
        <matchValue></matchValue>
        <matchHeaderRegex>false</matchHeaderRegex>
        <matchValueRegex>false</matchValueRegex>
        <matchRequest>false</matchRequest>
        <matchResponse>false</matchResponse>
        <newHeader>impression_type</newHeader>
        <newValue>push</newValue>
        <newHeaderRegex>false</newHeaderRegex>
        <newValueRegex>false</newValueRegex>
        <matchWholeValue>false</matchWholeValue>
        <caseSensitive>false</caseSensitive>
        <replaceType>2</replaceType>
      </rewriteRule>
    </rules>
  </rewriteSet>
</rewriteSet-array>

重写规则设置正确与否验证:


规则设置正确与否验证

在上面的Notes列上会显示Rewrite Tool: query added "impression_type: push"

应用:

  1. 打开Charles并生效上面的Rewrite设置
  2. 手机设置代理为Charles的代理地址
  3. 正常阅读普通文章\视频达到奖励时点
  4. 查找我的收益页面,验证成功与否

案例02

问题:趣消除趣键盘东方头条等App都看广告得金币,怎样减少广告的时间?

思考:广告是哪里来的?广告时长是怎么来的?
当点击App上的按钮弹出广告时,3个App都调用了接口:

https://is.snssdk.com/api/ad/union/sdk/get_ads/

响应如下:

{
......
        "video": {
            "cover_height": 1280,
            "cover_url": "http://sf1-ttcdn-tos.pstatp.com/img/mosaic-legacy/1be91000a8c62c6ba6221~noop.jpg",
            "cover_width": 720,
            "endcard": "https://www.toutiaopage.com/union/endcard/1629848424707111/?rit=909946692\u0026req_id=ED6EC127-C359-4C18-A41E-3A5F6F499250u3183\u0026ad_sdk_version=1.9.9.0\u0026os=ios\u0026lang=cn\u0026style_id=1104\u0026ad_id=1629844369912839\u0026_toutiao_params=%7B%22cid%22%3A1629848424707111%2C%22device_id%22%3A9724339963504202%2C%22log_extra%22%3A%22%7B%5C%22ad_price%5C%22%3A%5C%22XOub4AAGRWZc65vgAAZFZgz-hMMMgth42hwxAg%5C%22%2C%5C%22convert_id%5C%22%3A1629408290774020%2C%5C%22orit%5C%22%3A900000000%2C%5C%22req_id%5C%22%3A%5C%22ED6EC127-C359-4C18-A41E-3A5F6F499250u3183%5C%22%2C%5C%22rit%5C%22%3A909946692%7D%22%2C%22orit%22%3A900000000%2C%22req_id%22%3A%22ED6EC127-C359-4C18-A41E-3A5F6F499250u3183%22%2C%22rit%22%3A909946692%2C%22sign%22%3A%22D41D8CD98F00B204E9800998ECF8427E%22%2C%22uid%22%3A9724339963504202%2C%22ut%22%3A14%7D\u0026append=%7B%22openurl%22%3A%22%22%2C%22postdata%22%3A%5B%7B%22__type__%22%3A%22req_id%22%2C%22cid%22%3A1629848424707111%2C%22req_id%22%3A%22ED6EC127-C359-4C18-A41E-3A5F6F499250u3183%22%2C%22rit%22%3A909946692%7D%5D%7D",
            "resolution": "720x1280",
            "size": 5628226,
            "video_duration": 29.04,
            "video_url": "http://vd2.bdstatic.com/mda-jesntzw6569xqudw/mda-jesntzw6569xqudw.mp4"
        }
    }],
......
}

广告就是从上面的接口获取而来的,广告时长由video_url字段对应的mp4的时长决定

解决:用Charles的Rewrite功能Body替换video_url字段的值

Rewrite功能-Type:Body
Match Value:
"video_url":"(.+)"}

Replace Value:
"video_url":"http://vd2.bdstatic.com/mda-jesntzw6569xqudw/mda.mp4"}

提供一个只有3秒的素材:

http://vd2.bdstatic.com/mda-jesntzw6569xqudw/mda-jesntzw6569xqudw.mp4

案例03

问题:章鱼输入法App有看广告得金币,没有像案例02那样找到相应的接口api返回广告视频的URL,怎样减少广告的时间?

思考:尝试替换广告视频的请求
比如广告视频的请求如下:

Get https://v3-ad.ixigua.com/.../video/m/.../toutiao.mp4

替换为只有3秒的视频地址
Get http://vd2.bdstatic.com/.../3seconds.mp4

解决:用Charles的Rewrite功能URL替换请求

Rewrite功能-Type:URL

案例04

问题:扶我起来学数学App的作战休息区有一个游戏伪装者,在上报成绩时,接口有hash字段,修改成绩字段,hash会验证不通过,达到了防止伪造成绩的功能,怎样在hash前伪造成绩?

成绩上报接口
思考:hash算法一般难破解,与其破解hash算法,不如转变思路:修改传入hash的值
value肯定与成绩相关
hash(value)

那value具体是怎么样的呢?通过抓包的数据可以判定为是个h5游戏,在js代码中可能包含相要的答案


image

在浏览器中打开上面中的game.html验证确实是一个h5游戏:

image

解决:

  • 用Charles的Mirror功能把抓包的数据自动保存为文件,再在文本编辑器中检查代码
  • game.html文件中查找rest/game_report,因为有这个网络包,所以先查找这个关键字,结果如下:
function _gameReport(score, callBack, hash, time){
    var oAjax = null;
    //这里进行HTTP请求
    oAjax = new XMLHttpRequest();
    oAjax.open('post',HOSTURLAPI+"/rest/game_report"+"?uid="+UID+"&gameid="+GAMEID+"&score="+score+"&tm="+time+"&hash="+hash,true);
}
  • 查找_gameReport函数的调用者
function gameReport(score, callBack){
    var timeData = new Date().getTime();
    var hashValue = UID+GAMEID+score+timeData;
    var hash = '';
    dsBridge.call('hashCode',hashValue,function(data){
        hash = data;
        _gameReport(score, callBack, hash, timeData);
    });
}

gameReport(b[0], function(success, old_score){})

js代码调用到App的hashCode方法,hashValue = UID+GAMEID+score+timeData
用Charles的Rewrite功能Body替换:

Match Value:
gameReport(b[0]

Replace Value:
gameReport('99'
image
  • 成绩已修改,hash验证已通过

Mirror应用

文档:https://www.charlesproxy.com/documentation/tools/mirror/

The Mirror tool saves responses to disk as they are received, creating a mirror copy of websites as you browse them.

Mirror把响应保存为文件到硬盘上

image Mirror保存下来的文件

No Caching 和 Block Cookies应用

在案例:扶我起来学数学App的伪装者游戏通过Rewrite功能修改了js文件中的内容;但有时js文件不是每次都会传输,而是使用了缓存,这时Rewrite功能就失效了,因为没有发生网络请求;通过No Caching 和 Block Cookies使网络请求每次都发生

Map Local应用

Map Local应用场景
修改js文件来改变App行为:
1. 使用No Caching 和 Block Cookies功能保证js文件通过网络请求加载到App
2. 使用Mirror功能把js文件保存到电脑上
3. 使用Map Local功能使App加载修改后的js文件

相关文章

  • Charles的应用

    [TOC] Rewrite应用 案例01 问题:今日头条极速版App每天的阅读推送文章任务因为每天收到的推送很少,...

  • [charles] 抓Mac端的一些问题

    安装 下载charles官网破解版 安装charles 破解 1.找到charles应用程序,右键 ‘显示包内容’...

  • Charles使用(二)

    1.破解Charles ~找到Charles应用——>右键显示包内容—-->contents——>java;更换C...

  • Charles问题之抓Android手机应用Https包,出现U

    本文补充通过Charles抓取Android手机上应用Https包,出现Unknown的解决办法。 Charles...

  • Charles 安装和破解

    Charles 4.0 Mac下载(破解) 转:精品MAC应用分享»Charles 4.0 Mac上的抓包工具 官...

  • Charles:移动端设备网络抓包

    今天安利一款软件,Charles。最近在研究应用安全的东西,经常需要对应用访问网络进行抓包,然后发现Charles...

  • Charles - 问题汇总

    1、破解Charles时,需要将Charles目录下的Charles.jar包替换掉,但是在应用程序中并未找到Ch...

  • mac Charles 破解

    破解步骤: 1.下载安装包charles2.双击dmg文件,将charles拖入应用程序中3.在应用程序中右键Ch...

  • mac下Charles进行数据篡改

    1.首先mac电脑下载Charles并安装:将 Charles.app 拖至 应用程序 文件夹 复制 charle...

  • Charles4.0破解及使用

    简单说明下Charles的破解方法: 1.打开dmg镜像,将“Charles.app”拖入应用程序中; 2.打开应...

网友评论

      本文标题:Charles的应用

      本文链接:https://www.haomeiwen.com/subject/ginqaqtx.html