上来是一段混淆的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. OpenWRT/iStoreOS 不从头编译内核安装4G LTE网卡 Quectel EM05-CE记录

    我的机器是x86装了iStoreOS,有4G网卡Quectel EM05 https://www.quectel.com/cn/product/lte-em05 主要参考资料如下 https://ww ...

  2. Jax中关于NonZero的使用

    技术背景 在Jax的JIT即时编译中,会追踪每一个Tensor的Shape变化.如果在计算的过程中出现了一些动态Shape的Tensor(Shape大小跟输入的数据有关),那么就无法使用Jax的JIT ...

  3. Java Study For Seven Day( 面向对象三)

    继承 class Person { String name; int age; } class Student extends Person { void study() { System.out.p ...

  4. k8s之镜像加速

    部分国外镜像仓库无法访问,但国内有对应镜像源,可以从以下镜像源拉取到本地然后重改tag即可: 阿里云镜像仓库   可以拉取k8s.gcr.io镜像 #示例 docker pull k8s.gcr.io ...

  5. VSCode关于编译scss的插件

    先安装两个插件,live server和 live sass compiler两个插件 然后将下面的代码复制到设置(文件---首选项----设置----打开设置json)中 "liveSas ...

  6. 超详细 HarmonyOS 开发教程之开发环境搭建指南

    HarmonyOS开发环境搭建指南:DevEco Studio安装教程 一.系统要求 操作系统:Windows 10 64位或更高版本 RAM:至少8GB,推荐16GB 硬盘空间:至少10GB可用空间 ...

  7. 试了下Cursor,感觉程序员工种危险了

    大家好,我是汤师爷~ 今年8月份,AI 编程工具 Cursor 在开发者社区彻底火了.在 Twitter 平台上,Cloudflare 副总裁分享了一段视频,展示了一个令人震惊的案例.他年仅 8 岁的 ...

  8. Nginx HttpHeader增加几个关键的安全选项

    针对像德勤这样的专业渗透测试(Pentest)的场景中,为了确保网站的安全性并通过严格的安全审查,需要为这些安全头配置更细致.专业的参数. 以下是对每个选项的建议以及设置值的详细说明: 1. Stri ...

  9. 攻防世界:Crypto习题之easy_RSA

    攻防世界:Crypto习题之easy_RSA RSA 加密 在非对称加密算法中,单向函数被广泛应用,用于确保从公钥加密后的密文无法轻易推导出私钥,从而保证数据的安全性.而其中最著名的算法便是 RSA ...

  10. Docker安装开源版obs对象存储服务minio,并后台运行

    ​​>Minio 是一个基于Apache License v2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能.它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据. 例如 ...