2

海关 瑞数5.5 找后缀加密入口解析 - DemoLi

 1 year ago
source link: https://www.cnblogs.com/DemoLi/p/16648045.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

RS5.5 的加密 解决方法RPC 插桩找入口

  • 站点
    • aHR0cDovL2NyZWRpdC5jdXN0b21zLmdvdi5jbi9jY3Bwd2Vic2VydmVyL3BhZ2VzL2NjcHAvaHRtbC9sb3N0Y3JlZGl0Lmh0bWw=
  • 加密参数:
    • nUdYJ1Ji

过一下debugger

  • 自己想办法

找到加密入口

  • hook xhr值

    • var code2 = function(){
      var open = window.XMLHttpRequest.prototype.open;
      window.XMLHttpRequest.prototype.open = function (method, url, async){
          if (url.indexOf("nUdYJ1Ji")>-1){
              debugger;
          }
          return open.apply(this, arguments);
      };
      };
      var script = document.createElement('script');
      script.textContent = '(' + code2 + ')()';
      (document.head||document.documentElement).appendChild(script);
      script.parentNode.removeChild(script);
      
    • 用插件什么的自己随便找一个就行

  • 处理一下console.log 被重写的问题 作者太笨直接用插件重写了

    • image-20220901193622036
  • hook到参数的位置

    • image-20220901210455181
  • 跟栈到这里 可以发现在send这里是没有加密的

    • image-20220901210627221
    • image-20220901210652953
  • 所以加密在上一个调用栈 _$fJ

    • image-20220901210829039
    • 可以到这里已经完成加密了 加密的上一个函数是_$_x
    • 这个函数可以发现和瑞数5 的加密有点相似
  • 在平坦流中定位到加密入口

    • 先打一个日记断点 重新点击下一步 查看这个判断的值的走势以及到最后哪些变量中有我们的加密值
    • image-20220901211302735
    • image-20220901211633631
  • 继续 加入已加密的arguments进行日志断点

    • image-20220901211921849
    • image-20220901212049957
    • image-20220901212306612
  • 可以发现在判断值为100---》30----》30----》60这个流程完成的加密

  • 进一步进行插桩断点 (若是在这一步进行判断断点的话会发现再此之前已经完成了加密 说明有其他变量已经存储了我们的加密 这时候只能把变量台中的可疑变量都拿出来 再进行一步插桩)

    • image-20220901214300375
    • 到这里很容易看出来我们判断的arguments还没加密 但是有点变量里面已经把这个url加密了 所以我们要找到这些可疑变量加密的位置
  • 在进行一次插桩断点 把可疑的值带上一起

    • v_log(_$ly+'----'+_$bi['_$_W']+'----'+_$cO[2]['_$_W']+'----'+_$h4[2]['_$_W']+'----'+_$ha[2][2]['_$_W']+'-----'+Array.prototype.slice.call(_$ha[0])[1])
    • image-20220901215254558
    • 这次可以发现加密的判断值流程变了在30---5---62完成加密
  • 进行插桩判断这个值的走向 进行断点

    • v_log(_$hT);window.LSL.push(_$hT);if(LSL[LSL.length-1]==5 && LSL[LSL.length-2]==30 && LSL[LSL.length-3]==5){true}
    • image-20220901215907888
  • 断点到这里发现还是有加密的参数 不管了 进行跟栈看看吧

    • image-20220901220011986
    • 其实还可以进一步进行插桩看看怎么到底在哪加密的 判断这加密后缀长度为96即可
    • 我们跟栈发现 到这个apply函数就没有加密的参数了
    • image-20220901220319524
    • apply函数的用法可以自己百度看看
    • 主要看apply前面的函数
    • image-20220901220413661
    • 继续查看调用栈
    • image-20220901220738285
    • 继续查看调用栈
    • image-20220901220958982
    • 继续跟栈 终于找到了这个加密入口
    • image-20220901221231318

完结 后续的扣代码或者RPC都可以试试

image-20220901221511082

qq 320783214


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK