所有文章首发在我的微信公众号“逆向新手”,更多逆向系列请关注公众号,谢谢!

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!

引言

eval混淆,其实就是利用了eval()函数的特性,它跟Python里的eval函数差不多,能把字符串解析成代码来执行。如:

eval("var text = 123")  // 就是在执行括号里的代码
console.log(text)  // 输出 123

它的还原也很简单,只需要把 eval 改成 console.log ,然后在浏览器的控制台(Console标签)输出,即可还原出源代码,如下所示:

不过据有些大佬说,碰到过即使改成console.log,也不会显示出源代码的eval混淆。反正我是没碰到,碰到我也不会╮(╯▽╰)╭

接下来正式开始吧~

某市房产信息平台

目标网站:

aHR0cDovLzYwLjE3My4yNTQuMTI2Lw

访问网站,随意点击一个小区,会跳转到一个随机网址,但是在页面源代码中,却看不到该网址信息,只能看到如下所示:

看到这里有个 οnclick=“reurl(this)” ,意思就是“在点击时”触发 reurl 函数,那我们就全局搜索(ctrl+shift+F) reurl 这个函数

搜到的第一个文件为页面代码,所以很明显就是第二个文件,进去再搜索(ctrl+F) reurl,看到只有一个结果,是一个eval混淆,那就照着上面说的还原下吧~

果然出来了一个 reurl 函数。不过这里我采用另一种办法,能够更快的定位,直接在console控制台输入 reurl 回车即可。

如果代码都在一行,可点击左下角{}进行美化。接下来就是进入下断点调试了,点击前面的行数(即下断点,数字上会出现蓝色标签),然后随便点个小区,程序就会停在断点处(即运行到这一行,但这行还没运行)。这时候把鼠标放在 a.id 上面可知它就是前面图【2】页面上的id值。

先把这段代码复制到本地js文件中,修改成本地可以运行的样子,如下:

function reurl(id) {var a = "/item/" + recode(id)return a  // 这里的a即为我们要的网址链接
};

接着再把鼠标放在 recode 函数上面,点击上方的链接,继续跳转到该函数中。

又看到两个新的函数出现,nscaler 和 SetObjNum,一样的,复制这段代码到本地并稍作修改,继续下断点,然后按F8,让程序往下运行,进入函数,扣扣扣就行啦。

某变IP

目标网站:

aHR0cHM6Ly93d3cuYmFpYmlhbmlwLmNvbS9ob21lL2ZyZWUuaHRtbA==

打开F12,刷新网页,发现需要的数据都在free.html中,但查看网页源代码,发现IP字段被加密

一样可以在控制台输入或全局搜索FFcontraceptive(这个名称会变,根据网页提供的搜索)。这里采用全局搜索,搜到两个文件,其中一个为free.html,都是源代码加密的地方。那明显在第二个中,打开看下

可以看到这里调用了ddip函数,尝试打断点并刷新网页,发现断不上。因此在这文件中搜索ddip看下。

总共只能搜索到两个结果,但是这里看到有个eval,看来又是被混淆了,一样的套路还原一下。

将还原后的代码保存到本地,同理将这段eval上面一段的eval还原,得到如下代码:

我们运行一下ddip函数,发现报错$未定义。这里可以看到其实是用了base64的decode函数。还是在原来的js文件中搜索decode,可以找到base64就在这个自执行函数中生成

将这段匿名函数整个复制下来,把最后的传参jQuery改成

= {}; 即可运行:

这两个都没什么难度,对于一些不懂的地方,可以多下断点,然后鼠标悬停,或复制它到控制台查看就行了,就是不断调试的过程。

两个网站的详细代码,均已上传本人GitHub,可点击此处跳转。希望各位先自己练习试一下,不明白的再配合代码理解哦~

欢迎关注我的微信公众号“逆向新手”,谢谢!

js 控制鼠标_JS逆向 | 面向小白之eval混淆相关推荐

  1. js控制鼠标移动_原生JS封装可拖拽效果

    项目代码已上传码云:小朋友/JavaScript 封装可拖拽特效 访问该URL可查看效果:http://is666a.gitee.io/javascript_drag/ https://www.zhi ...

  2. js 控制鼠标_原生js实现改变视频播放速率

    前言:前几天考研成绩刚刚出来,有人欢喜有人悲,不管结果怎么样,只要努力过,就不存在遗憾一说.大家都知道考研复习的时候会有大量的时间用来看教学视频,就比如说"张宇高数"等等.考研复习 ...

  3. js控制audio音量_js控制html5 audio音频暂停播放

    js控制html5 audio音频暂停播放 音乐控制 音乐 播放/暂停 重新播放 function rbf(){ var audio = document.getElementById('music1 ...

  4. js禁止鼠标滑轮_js实现鼠标滑动到某个div禁止滚动

    本文实例为大家分享了js实现鼠标滑动到某个div禁止滚动的具体代码,供大家参考,具体内容如下 项目中碰到一个场景就是当鼠标滑倒某个div的时候,滑动鼠标页面不再滚动. 这里主要是当鼠标滑动到该div时 ...

  5. html点击控制盒子左右移动,JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例...

    JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例 发布时间:2020-10-04 12:47:25 来源:脚本之家 阅读:121 作者:s_psycho 本文实例讲述了JS实现鼠标拖拽盒子移动及右键 ...

  6. js控制多个滚动条联动显示,以及解决滑动鼠标滚轮导致的问题

    参考文章 原生JS控制多个滚动条同步跟随滚动 <!DOCTYPE html> <html lang="en"><head><meta ch ...

  7. Nodejs使用robotjs轻松控制鼠标键盘

    Nodejs使用robotjs轻松控制鼠标键盘 最近刚完成了基于vue的聊天系统的开发,闲下来之余,鼓捣了一下node脚本,每天上班开机挺麻烦,要一个一个打开软件.手动连wifi:于是乎,鼓捣出了一个 ...

  8. 基于 Opencv 实现眼睛控制鼠标

    作者 | 小白 来源 | 小白学视觉 如何用眼睛来控制鼠标?一种基于单一前向视角的机器学习眼睛姿态估计方法.在此项目中,每次单击鼠标时,我们都会编写代码来裁剪你们的眼睛图像.使用这些数据,我们可以反向 ...

  9. 基于Opencv实现眼睛控制鼠标

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 如何用眼睛来控制鼠标?一种基于单一前向视角的机器学习眼睛姿态估计方 ...

最新文章

  1. java基于http协议编程_Java中基于HTTP协议网络编程
  2. #每天一种设计模式# 模板方法
  3. 暴力枚举 UVA 725 Division
  4. md5sum算法 —— linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序
  5. JS一起学05:Date对象、封闭空间、函数传参和封装、获取非行间样式、字符串操作
  6. 强大的DataGrid组件[13]_字段过滤(Filter)——Silverlight学习笔记[21]
  7. Redis入门基础详解
  8. 除了修改WEBCONFIG会导致WEB服务重启外,还有其他的什么操作会导致重启?
  9. GitHub 的简单使用
  10. html导出表格为csv,可将HTML表格导出为Excel|csv|txt文件的jQuery插件
  11. springboot读取linux文件_SpringBoot 读取文件代码模版
  12. java专用英语词典软件_英语词典app哪个好 5款好用的英语词典app推荐
  13. 操作系统原理,多道程序设计,并发环境与并发任务,进程定义,进程控制块PCB,PCB维护的进程数据
  14. mysql数据库 添加字段,修改字段,修改注释
  15. 单龙芯3A3000-7A1000PMON研究学习-(4)撸起袖子干-makefile(a)
  16. 360浏览器插件360抢票王火车票刷票技巧
  17. unity生涯的开始——太空飞船小游戏制作
  18. 锂电池】关于4.2V锂电池充电IC的一些记录
  19. 《SolidWorks 2014中文版机械设计从入门到精通》——2.5 尺寸标注
  20. 【HTML5】基础教程

热门文章

  1. 第九篇:Spring Boot整合Spring Data JPA_入门试炼02
  2. node+express创建第一个node项目
  3. JavaScript高级语法打包 - babel插件安装配置报错!Error: Cannot find module ‘@babel/preset-preset.env‘
  4. css3动画过渡按钮
  5. 会不会导致内存泄漏_Java内存泄漏!为什么会泄漏?如何泄漏?怎么定位?
  6. apache ant 安装_Jmeter+ Ant+jenkins 接口自动化框架实现
  7. datagrid如何获取一行数据中的某个字段值_SQL中常见的面试题
  8. C语言 va_start 宏 - C语言零基础入门教程
  9. jq之text() html()
  10. 深度系统如何安装mysql_deepin 安装mysql apache