小某书参数分析
Posted 果、失
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小某书参数分析相关的知识,希望对你有一定的参考价值。
文章目录
声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!
欢迎大佬加群一起交流哇( Q群:985475126)
一.流程分析
①先请求首页返回一些cookie
②再请求这个,返回两个关键的cookie
③最后激活,也返回了一个很重要的cookie
二.逆向分析
①explore
这个并没有特别的参数啦,不关键
②profile
其中有几个 x-???
(懂得都懂) 系列参数,很简单,直接搜索,然后直接复制那一段的代码,嘎嘎轻松。(虽然是一个webpack,但不要去扣加载器,然后再导出函数去调用哦,直接复制代码缺啥补啥)。
至于最难的 ???Data
(研究过的都知道是什么参数),是一个vmp,直接下断点,答应输出,然后嘎嘎看日志还原,还是很容易滴嗷。
后面还原研究了一下,最重要的函数应该是一个RC4和base64结合体,有些魔改的。难不难,我不知道,但是我会呀。
③activate
这个和上一个网址差不多,前一个能还原,这个也是很简单滴啦。
三.结果展示
信息没给全,懂得都懂啦。
laravel框架中容器类简化代码-摘自某书
1 <?php 2 3 //容器类装实例或提供实例的回调函数 4 class Container { 5 6 protected $bindings = []; 7 8 //绑定接口和生成相应实例的回调函数 9 public function bind($abstract, $concrete=null, $shared=false) { 10 11 //如果提供的参数不是回调函数,则产生默认的回调函数 12 if(!$concrete instanceof Closure) { 13 $concrete = $this->getClosure($abstract, $concrete); 14 } 15 16 $this->bindings[$abstract] = compact(‘concrete‘, ‘shared‘); 17 } 18 19 //默认生成实例的回调函数 20 protected function getClosure($abstract, $concrete) { 21 22 return function($c) use ($abstract, $concrete) { 23 $method = ($abstract == $concrete) ? ‘build‘ : ‘make‘; 24 return $c->$method($concrete); 25 }; 26 27 } 28 29 public function make($abstract) { 30 $concrete = $this->getConcrete($abstract); 31 32 if($this->isBuildable($concrete, $abstract)) { 33 $object = $this->build($concrete); 34 } else { 35 $object = $this->make($concrete); 36 } 37 38 return $object; 39 } 40 41 protected function isBuildable($concrete, $abstract) { 42 return $concrete === $abstract || $concrete instanceof Closure; 43 } 44 45 //获取绑定的回调函数 46 protected function getConcrete($abstract) { 47 if(!isset($this->bindings[$abstract])) { 48 return $abstract; 49 } 50 51 return $this->bindings[$abstract][‘concrete‘]; 52 } 53 54 //实例化对象 55 public function build($concrete) { 56 57 if($concrete instanceof Closure) { 58 return $concrete($this); 59 } 60 61 $reflector = new ReflectionClass($concrete); 62 if(!$reflector->isInstantiable()) { 63 echo $message = "Target [$concrete] is not instantiable"; 64 } 65 66 $constructor = $reflector->getConstructor(); 67 if(is_null($constructor)) { 68 return new $concrete; 69 } 70 71 $dependencies = $constructor->getParameters(); 72 $instances = $this->getDependencies($dependencies); 73 74 return $reflector->newInstanceArgs($instances); 75 } 76 77 //解决通过反射机制实例化对象时的依赖 78 protected function getDependencies($parameters) { 79 $dependencies = []; 80 foreach($parameters as $parameter) { 81 $dependency = $parameter->getClass(); 82 if(is_null($dependency)) { 83 $dependencies[] = NULL; 84 } else { 85 $dependencies[] = $this->resolveClass($parameter); 86 } 87 } 88 89 return (array)$dependencies; 90 } 91 92 protected function resolveClass(ReflectionParameter $parameter) { 93 return $this->make($parameter->getClass()->name); 94 } 95 96 } 97 98 99 class Traveller { 100 101 protected $trafficTool; 102 103 public function __construct(Visit $trafficTool) { 104 $this->trafficTool = $trafficTool; 105 } 106 107 public function visitTibet() { 108 $this->trafficTool->go(); 109 } 110 111 } 112 113 interface Visit { 114 public function go(); 115 } 116 117 class Train implements Visit { 118 119 public function go() { 120 echo "go to Tibet by train !!!"; 121 } 122 123 } 124 125 $app = new Container(); 126 $app->bind("Visit", "Train"); 127 $app->bind("traveller", "Traveller"); 128 129 130 $tra = $app->make("traveller"); 131 $tra->visitTibet();
以上是关于小某书参数分析的主要内容,如果未能解决你的问题,请参考以下文章