上来是一段混淆的ob混淆的js代码,还会有个setinterval无限debugger反调试

点击查看代码
            function _0x51ba() {
const _0x4b06d7 = ['padding:100px\x20120px;\x20font-size:\x200;\x20background:url(\x22', '%c\x20', '4794822nLKJYA', '.gif', 'clear', '18xdjAAC', 'port', '407235uHwfGL', 'location', 'abs', '2698131HgmvDV', '486zMsipS', '6172276GysvKv', '700496gKdPdS', 'ctfshow{Happy_Birthday_My_Country}', '500', 'log', 'error', 'getTime', '5907iOEsVM', '\x22);\x20no-repeat;', 'go(', '7185675nyCjVD'];
_0x51ba = function() {
return _0x4b06d7;
}
;
return _0x51ba();
}
(function(_0x5d7a98, _0x47cab2) {
const _0x431f1b = _0x2122
, _0x441dcd = _0x5d7a98();
while (!![]) {
try {
const _0x4b147c = -parseInt(_0x431f1b(0x81)) / 0x1 * (-parseInt(_0x431f1b(0x79)) / 0x2) + parseInt(_0x431f1b(0x78)) / 0x3 + -parseInt(_0x431f1b(0x7a)) / 0x4 + parseInt(_0x431f1b(0x8c)) / 0x5 + parseInt(_0x431f1b(0x87)) / 0x6 + -parseInt(_0x431f1b(0x84)) / 0x7 + parseInt(_0x431f1b(0x7b)) / 0x8 * (parseInt(_0x431f1b(0x8a)) / 0x9);
if (_0x4b147c === _0x47cab2)
break;
else
_0x441dcd['push'](_0x441dcd['shift']());
} catch (_0x4a6fff) {
_0x441dcd['push'](_0x441dcd['shift']());
}
}
}(_0x51ba, 0xc869c));
function _0x2122(_0x4fce2d, _0x5e9d8d) {
const _0x51ba75 = _0x51ba();
return _0x2122 = function(_0x21226f, _0x1de403) {
_0x21226f = _0x21226f - 0x78;
let _0x2dad0f = _0x51ba75[_0x21226f];
return _0x2dad0f;
}
,
_0x2122(_0x4fce2d, _0x5e9d8d);
}
function getflag() {
const _0x51954c = _0x2122;
console[_0x51954c(0x7f)](_0x51954c(0x7c));
}
function go(_0x554bbc) {
const _0x4636e4 = _0x2122;
console[_0x4636e4(0x89)](),
url = window['location']['protocol'] + '//' + window[_0x4636e4(0x8d)]['hostname'] + ':' + window[_0x4636e4(0x8d)][_0x4636e4(0x8b)] + '/' + _0x554bbc + _0x4636e4(0x88),
console[_0x4636e4(0x7e)](_0x4636e4(0x86), _0x4636e4(0x85) + url + _0x4636e4(0x82)),
_0x554bbc == 0xb && (console[_0x4636e4(0x89)](),
getflag());
}
function FBIWarning() {
const _0x4d4a2a = _0x2122;
for (var _0x5f55aa = 0x1; _0x5f55aa <= 0xb; _0x5f55aa++) {
setTimeout(_0x4d4a2a(0x83) + _0x5f55aa + ')', _0x5f55aa + _0x4d4a2a(0x7d));
}
console['clear']();
}
!function() {
const _0x3bcc60 = setInterval(()=>{
const _0x47d54b = _0x2122
, _0x359297 = new Date()[_0x47d54b(0x80)]();
debugger ;const _0x4ce7dc = new Date()[_0x47d54b(0x80)]();
Math[_0x47d54b(0x8e)](_0x4ce7dc - _0x359297) > 0x64 && (FBIWarning(),
clearInterval(_0x3bcc60));
}
, 0x3e8);
}();

js逆向习惯了,其实一开始想用ast直接反混淆的,后面仔细一看发现完全不用
我们打debugger调试页面可以看到flag的函数

ctfshow--红包一 ob混淆的更多相关文章

  1. ctfshow 红包题 武穆遗书

    偶然见看到这道题,就下载了看了看.确实是我自己的逆向能力不够,逆不动.但是我似乎找到了非预期... 下载程序,ida打开,发现不对.后来发现是加了upx壳,拿软件去一下.再次ida打开. 其中buff ...

  2. 加速乐逆向 cookies 参数

    简介 加速乐用于解决网站访问速度过慢及网站反黑客问题. 爬取使用该技术网站时需要携带特定的cookies参数(有的是__jsl_clearance_s,有的__jsl_clearance),本项目以一 ...

  3. 支付宝AR红包引出Python中的PIL小试

    这两天支付宝AR红包火了,周围的同学全在玩.可是我一直在想这个原理是什么?通过请教大神和思考,知道了它有两个限定条件:GPS地理位置和图片的识别.所以,只要我们有了这两个限定条件,就不难进行该红包的破 ...

  4. 一个PHP混淆后门的分析

    洒家的朋友的公司的某个站发现最近被上传了一个后门程序.为了取证我们抓取了HTTP请求流量,看到了一堆莫名其妙看似经过混淆的请求,响应也是看似base64的乱码.洒家用了2个小时静态分析了一遍,并写了利 ...

  5. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等

    本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...

  6. 从jscript脚本混淆说起

    转载:http://www.freebuf.com/column/144897.html 脚本病毒是一个一直以来就存在,且长期活跃着的一种与PE病毒完全不同的一类病毒类型,其制作的门槛低.混淆加密方式 ...

  7. javascript脚本混淆

    javascript脚本混淆  脚本病毒是一个一直以来就存在,且长期活跃着的一种与PE病毒完全不同的一类病毒类型,其制作的门槛低.混淆加密方式的千变万化,容易传播.容易躲避检测,不为广大网民熟知等诸多 ...

  8. 【QQ红包】手机发抢不到的口令红包

    这方法95%的人都抢不了 在QQ输入框输入一个表情,例如:阴险那个表情 将表情剪切到口令红包的口令里 这时候口令里的那个表情表情变成了符号 将符号删去一格,然后全选.复制 然后返回到QQ输入框粘贴 然 ...

  9. android 视频录制 混淆打包 之native层 异常的解决

    原文地址:http://www.cnblogs.com/linguanh/    (滑至文章末,直接看解决方法) 问题起因: 前5天,因为项目里面有个类似 仿微信 视频录制的功能, 先是上网找了个 开 ...

  10. C#开发微信门户及应用(38)--微信摇一摇红包功能

    摇一摇周边红包接口是为线下商户提供的发红包功能.用户可以在商家门店等线下场所通过摇一摇周边领取商家发放的红包.我曾经在<C#开发微信门户及应用(28)--微信“摇一摇·周边”功能的使用和接口的实 ...

随机推荐

  1. php操作sqlite3

    距离上次接触sqlite3已经快一年了,去年这篇文章讲跟着菜鸟教程学python操作sqlite3,https://www.cnblogs.com/lizhaoyao/p/13717381.html ...

  2. MPLS多协议标签交换

    多协议标签交换 MPLS(Multiprotocol Label Switching)是一种网络协议,用于在数据包交换网络中高效地进行数据路由转发.MPLS通过引入标签(Label)来对数据包进行标识 ...

  3. 外网如何通过https访问自己的服务

    前情提要 最近在接wx小游戏的sdk, 消息推送需要在wx端配置https开头的地址. 我本地开了一个http服务,我的ip为192.168.40.39, 监听端口 8091.想要达到的效果是,外部浏 ...

  4. Ubuntu apt-cache命令查找可用软件包

    本文GoFace给大家讲解下在Ubuntu及相同包管理的linux系统下如何查找可用软件包.在Ubuntu上大家一般使用apt-get安装软件,如果想查找某一包软件仓库中是否有,并不是使用apt-ge ...

  5. 结合uWSGI和Nginx部署flask项目

    在开发环境,我们一般使用python起一个web服务即可访问,但是对于生产环境来说,我们一般使用nginx+uWSGI的方式进行部署. 使用Nginx优点: 安全:不管什么请求都要经过代理服务器,这样 ...

  6. 探索 TypeScript 编程的利器:ts-morph 入门与实践

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:贝儿 背景 在开发 web IDE 中生成代码大纲的功能时 ...

  7. 文件上传漏洞&靶场通关详解

    文件上传漏洞&靶场通关详解 什么是文件上传漏洞? 大部分网站都拥有上传文件的部分,文件上传漏洞是由于网站开发者对用户上传文件的过滤不够严格,攻击者可以通过这些漏洞上传可执行文件(如木马,恶意脚 ...

  8. 使用 yum 安装 nginx

    rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm ...

  9. electron postinstall$ node install.js报错

    本来以为是文件路径错了执行失败,手动去执行了下install.js,还是报错,但是不一样是连接超时 试了几种办法,简单直接就是如下方法 1:从项目node_modules中找到electron下的in ...

  10. elementui多选框部分禁用

    直接上代码 <el-table-column type="selection" :selectable="selectable" align=" ...