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

这篇博客详细介绍了如何针对海关RS5.5的加密方法进行破解,通过RPC插桩寻找加密入口。作者首先创建了一个debugger,然后通过hookXMLHttpRequest来跟踪加密参数。在跟踪过程中,作者发现了加密发生在_$fJ函数调用栈的上一层,并且在特定的流程中完成。最终,通过多次插桩和断点设置,成功定位到了加密的入口。这是一个深入的技术解析过程,适合对网络安全和加密技术感兴趣的读者。
摘要由CSDN通过智能技术生成

海关 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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值