吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 980|回复: 14
收起左侧

[学习记录] 小白记录Js逆向的第一天.

  [复制链接]
会唱歌的鬼 发表于 2024-5-3 11:57
本帖最后由 会唱歌的鬼 于 2024-5-3 12:44 编辑

听了很多老师的逆向课发现 很多东西能听懂


能听懂 但是真做不出来..


然后一个偶然 我看到补环境的部分 才明白自己缺乏的是什么 相信很多小白应该和我一样都是这个问题。


那就是 Js逆向 如果连js基础都不懂 怎么做逆向..


如果简单的还好 看看调用栈 熟悉一下基本的js dom等就大概能破了 但是现在很多站不是这么简单的呀.


就好像 一个RSA解密 你找到了入口的位置 加密函数的位置 但是你都不知道正常的RSA加密需要什么参数 传几个值 分别都是什么东西 那。。何谈逆向


我觉着 能看懂但是自己动手做不出来的很大一个原因就是 对js 对一些加密算法不熟悉。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

开这个文章的目的就是 一个逆向Js小白探索Js 查漏补缺.

本人基础: Java开发 Vue开发 略懂Flutter .


电脑: MacBook Pro ==> 为什么说这个呢 因为网上很多的公开的课用的都是Windows电脑 很多配套的软件比如乐易编程助手等等的在Mac都没有办法打开 所以后面我会找一些Mac平替的软件

如果你也和我一样 有类似的基础 欢迎收看我日后文章Js逆向的踩坑过程.


我会尽量以小白的视角 通俗易懂的描述Js逆向过程中有些关键词 方便大家理解.


之前一直听说js有原型链 原型对象 原型等等这些概念 一直没当回事儿 感觉没啥用..但 确实挺有用的 往下看吧..




原型

通过之前的例子我们知道

原型就是一个函数

原型对象就是一个函数名的.prototype属性的返回值

实例对象就是new了一个原型的名字返回的结果

知道这个那就好理解了 拿Document和document做一个举例 看看这俩玩意有啥区别又有啥关联.

浏览器打开F12

输入Document发现 这玩意是一个函数 那通过上面的总结是不是发现这东西有点像原型.

行 那我们既然猜测这东西是原型 那肯定有对应的原型对象吧.

尝试用这东西Document.prototype 看看有没有.prototype 属性 发现是有的 看看它的返回值 发现是一个大对象.

image-20240503120801116

看看里面的内容:

这我们是不是能猜测出来 返回的这东西就是prototype挂载的所有内容了.

image-20240503121218751

原型对象

这里用小白的语言给大家解释一下:

原型对象就是一个函数名(原型)的.prototype属性的返回值

或者

原型对象就是一个实例对象的.proto返回结果.

当然还有其他的Api可以获取到这些内容

比如 这个Api 也可以通过原型 转成原型对象

Object.getPrototypeOf("原型")

实例对象

行 那既然知道了Document对象是一个函数 是一个原型了.

我们尝试和小写的document去做一些关联.

纯猜测啊 大写的既然是原型 小写的估计应该是实例对象了

试试呗..

以吾爱的站做个举例 我们输出一下小写的document对象.

发现只有这么点内容.

image-20240503121459510

因为document对象挂载的东西比较多

原型对象Document.prototype 实际上是实例对象的.proto.proto属性 相当于往里面拿了两个.

==至于为啥 这里我也不太了解 正在搜资料..==

不过可以确定的是 最起码这几个东西我们关联上了 大概知道了 原型对象 原型 和实例对象之间的区别了.

image-20240503122921592

正常不应该用这个document对象做举例的 这东西太复杂

如果是正常咱们定义的话 对这几个概念就比较通透了

给大家放一段代码 可以自己运行试试:

//原型 是一个函数
function User(){

}
User.prototype.username = "张三";
User.prototype.password = "密码";
User.prototype.login = function (username,password){
  console.log(`${username}登录成功`);
}
console.log("原型",User);

//原型对象 从原型到原型对象
console.log("原型对象",User.prototype);

//实例对象 从原型到实例对象
var user = new User(); 
console.log("实例对象",user);//本身new出来的是一个空的对象 User {}
user.login("李四","李四的密码"); //但是可以使用原型对象的方法和属性

//从原型对象到原型
console.log("从原型对象到原型 利用构造器",User.prototype.constructor);
console.log("从原型对象到原型 利用构造器",User.prototype.constructor ===User);

//从原型对象到实例对象
var user2 = new User.prototype.constructor;
console.log("实例对象",user2);

//从实例对象到原型对象
var user3 = new User();
console.log("原型对象",user3.__proto__);
console.log(Object.getPrototypeOf(user3) === User.prototype);

//从实例对象到原型
var user4 = new User();
console.log("从实例对象到原型",user4.__proto__.constructor);
console.log(Object.getPrototypeOf(user4).constructor);

输出:

原型 [Function: User]
原型对象 { username: '张三', password: '密码', login: [Function (anonymous)] }
实例对象 User {}
李四登录成功
从原型对象到原型 利用构造器 [Function: User]
从原型对象到原型 利用构造器 true
实例对象 User {}
原型对象 { username: '张三', password: '密码', login: [Function (anonymous)] }
true
从实例对象到原型 [Function: User]
[Function: User]

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 会唱歌的鬼 发表于 2024-5-3 13:11
问一下大家 我用Typora写的Markdown类型的文档 图片用的是gitee中转的图床(类似)  在typora软件里文档是正常的 为什么到了吾爱去粘贴过来文档 图片就不显示了 难道是有检测还是跨域的问题?大家有了解的吗?
Scan 发表于 2024-5-3 12:57
最近也是学js逆向中,楼主基础整理的很到位,一起进步!
 楼主| 会唱歌的鬼 发表于 2024-5-3 13:09
Scan 发表于 2024-5-3 12:57
最近也是学js逆向中,楼主基础整理的很到位,一起进步!

一起加油!
Scan 发表于 2024-5-3 13:23
会唱歌的鬼 发表于 2024-5-3 13:11
问一下大家 我用Typora写的Markdown类型的文档 图片用的是gitee中转的图床(类似)  在typora软件里文档是正 ...

dz系统和typora图片格式有区别,最好手动转换一下
kittylang 发表于 2024-5-3 13:25
会唱歌的鬼 发表于 2024-5-3 13:11
问一下大家 我用Typora写的Markdown类型的文档 图片用的是gitee中转的图床(类似)  在typora软件里文档是正 ...

gitee通过Referer进行防盗处理(只需要gitee或者什么都不传递),浏览器会自动添加Referer导致被屏蔽,而typora不会
 楼主| 会唱歌的鬼 发表于 2024-5-3 13:30
kittylang 发表于 2024-5-3 13:25
gitee通过Referer进行防盗处理(只需要gitee或者什么都不传递),浏览器会自动添加Referer导致被屏蔽,而ty ...

嗯呢 刚才看了 是这个原因 谢谢
Courser 发表于 2024-5-3 13:57
看不到图啊
 楼主| 会唱歌的鬼 发表于 2024-5-3 14:05

gitee给拦截了 后面我本地上传图片吧
Sunny2023 发表于 2024-5-4 16:20
楼主用户要多发哦,跟着你学
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表