96SEO 2026-02-20 00:35 12
完整JS加密代码五、python实现代码总结提示以下是本篇文章正文内容下面案例可供参考

常见混淆EVAL、AA、JJ、JSFUCKhttps://blog.csdn.net/EXIxiaozhou/article/details/128767669
反反爬虫训练平台网址https://wangluozhe.com/
下载使用:https://blog.csdn.net/EXIxiaozhou/article/details/128034062
采用的是JSFuck混淆加密方式是CryptoJS.AES由于混淆代码过长本文仅演示一种解决方式并介绍多种解决方式
1、POSThttps://wangluozhe.com/challenge/api/4
2、逆向加密参数_signature可以发现加密参数的长度是32
1、通过浏览器开发者模式/网络/XHR进行抓包通过启动器进入代码定义处
1、在线解密工具不实用https://lelinhtinh.github.io/de4js/2、针对
的情况复制最外层倒数第二个括号内的代码在浏览器控制台打印即可看到源码3、针对
的情况复制最后一个括号内的代码在浏览器控制台打印即可看到源码4、使用
2、通过重造eval的方法来拦截在window.get_sign();断住并在控制台输入hook代码即可
defined需要复制CryptoJS(可通过工具生成)模块的代码
2、补充了window和CryptoJS再次运行代码可以发现在if判断处做了两次环境检测
{subtype.$super.init.apply(this,
arguments);};}subtype.init.prototype
this.extend();instance.init.apply(instance,
(properties.hasOwnProperty(propertyName))
(properties.hasOwnProperty(toString))
this.init.prototype.extend(this);}};}());var
wordArray.sigBytes;this.clamp();if
Base.clone.call(this);clone.words
4).toString(16));hexChars.push((bite
0xff;latin1Chars.push(String.fromCharCode(bite));}return
decodeURIComponent(escape(Latin1.stringify(wordArray)));}
Latin1.parse(unescape(encodeURIComponent(utf8Str)));}};var
WordArray.init();this._nDataBytes
Utf8.parse(data);}this._data.concat(data);this._nDataBytes
{this._doProcessBlock(dataWords,
Base.clone.call(this);clone._data
BufferedBlockAlgorithm.extend({cfg:
this.cfg.extend(cfg);this.reset();},reset:
{BufferedBlockAlgorithm.reset.call(this);this._doReset();},update:
{this._append(messageUpdate);this._process();return
{this._append(messageUpdate);}var
hasher.init(cfg).finalize(message);};},_createHmacHelper:
key).finalize(message);};}});var
this._map;wordArray.clamp();var
{base64Chars.push(map.charAt((triplet
{base64Chars.push(paddingChar);}}return
base64Str.indexOf(paddingChar);if
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/};function
reverseMap[base64Str.charCodeAt(i
reverseMap[base64Str.charCodeAt(i)]
0x10325476]);},_doProcessBlock:
nBitsTotal;dataWords[(((nBitsLeft
0xff00ff00));dataWords[(((nBitsLeft
Hasher.clone.call(this);clone._hash
Hasher._createHelper(MD5);C.HmacMD5
Hasher._createHmacHelper(MD5);}(Math));(function()
0xc3d2e1f0]);},_doProcessBlock:
0x100000000);dataWords[(((nBitsLeft
Hasher.clone.call(this);clone._hash
Hasher._createHelper(SHA1);C.HmacSHA1
Hasher._createHmacHelper(SHA1);}());(function(Math)
WordArray.init(H.slice(0));},_doProcessBlock:
0x100000000);dataWords[(((nBitsLeft
Hasher.clone.call(this);clone._hash
Hasher._createHelper(SHA256);C.HmacSHA256
Hasher._createHmacHelper(SHA256);}(Math));(function()
0xffff;utf16Chars.push(String.fromCharCode(codePoint));}return
0xffff);utf16Chars.push(String.fromCharCode(codePoint));}return
swapEndian(utf16Str.charCodeAt(i)
arguments);}};subInit.prototype
0xC3D2E1F0]);},_doProcessBlock:
Hasher.clone.call(this);clone._hash
Hasher._createHelper(RIPEMD160);C.HmacRIPEMD160
Hasher._createHmacHelper(RIPEMD160);}(Math));(function()
hasher.finalize(key);}key.clamp();var
hasherBlockSizeBytes;this.reset();},reset:
this._hasher;hasher.reset();hasher.update(this._iKey);},update:
{this._hasher.update(messageUpdate);return
hasher.finalize(messageUpdate);hasher.reset();var
hasher.finalize(this._oKey.clone().concat(innerHash));return
this.cfg.extend(cfg);},compute:
WordArray.create([0x00000001]);var
hmac.update(salt).finalize(blockIndex);hmac.reset();var
hmac.finalize(intermediate);hmac.reset();var
intermediateWords[j];}}derivedKey.concat(block);blockIndexWords[0];}derivedKey.sigBytes
PBKDF2.create(cfg).compute(password,
this.cfg.extend(cfg);},compute:
hasher.update(password).finalize(salt);hasher.reset();for
hasher.finalize(block);hasher.reset();}derivedKey.concat(block);}derivedKey.sigBytes
EvpKDF.create(cfg).compute(password,
SHA256._doFinalize.call(this);hash.sigBytes
SHA256._createHelper(SHA224);C.HmacSHA224
SHA256._createHmacHelper(SHA224);}());(function(undefined)
x64Words[i];x32Words.push(x64Word.high);x32Words.push(x64Word.low);}return
X64Word.create(roundConstantMsw,
Hasher.cfg.extend({outputLength:
T[PI_INDEXES[laneIndex]];TPiLane.high
ROUND_CONSTANTS[round];lane.high
roundConstant.low;;}},_doFinalize:
32);dataWords[((Math.ceil((nBitsLeft
0xff00ff00));hashWords.push(laneLsw);hashWords.push(laneMsw);}return
Hasher._createHelper(SHA3);C.HmacSHA3
Hasher._createHmacHelper(SHA3);}(Math));(function()
0x137e2179)]);},_doProcessBlock:
0x100000000);dataWords[(((nBitsLeft
Hasher.clone.call(this);clone._hash
Hasher._createHelper(SHA512);C.HmacSHA512
Hasher._createHmacHelper(SHA512);}());(function()
SHA512._doFinalize.call(this);hash.sigBytes
SHA512._createHelper(SHA384);C.HmacSHA384
SHA512._createHmacHelper(SHA384);}());CryptoJS.lib.Cipher
C_lib.BufferedBlockAlgorithm;var
BufferedBlockAlgorithm.extend({cfg:
this.create(this._ENC_XFORM_MODE,
this.create(this._DEC_XFORM_MODE,
this.cfg.extend(cfg);this._xformMode
{BufferedBlockAlgorithm.reset.call(this);this._doReset();},process:
{this._append(dataUpdate);return
selectCipherStrategy(key).encrypt(cipher,
selectCipherStrategy(key).decrypt(cipher,
finalProcessedBlocks;},blockSize:
BlockCipherMode.extend();CBC.Encryptor
cipher.blockSize;xorBlock.call(this,
blockSize);cipher.encryptBlock(words,
blockSize);cipher.decryptBlock(words,
{paddingWords.push(paddingWord);}var
nPaddingBytes);data.concat(padding);},unpad:
mode.createDecryptor;this._minBufferSize
modeCreator;}},_doProcessBlock:
{this._mode.processBlock(words,
flush);padding.unpad(finalProcessedBlocks);}return
finalProcessedBlocks;},blockSize:
{this.mixIn(cipherParams);},toString:
this.formatter).stringify(this);}});var
0x65645f5f]).concat(salt).concat(ciphertext);}
wordArray.toString(Base64);},parse:
WordArray.create(ciphertextWords.slice(2,
CipherParams.create({ciphertext:
encryptor.finalize(message);var
CipherParams.create({ciphertext:
this.cfg.extend(cfg);ciphertext
cfg).finalize(ciphertext.ciphertext);return
WordArray.create(key.words.slice(keySize),
SerializableCipher.extend({cfg:
SerializableCipher.cfg.extend({kdf:
SerializableCipher.encrypt.call(this,
cfg);ciphertext.mixIn(derivedParams);return
this.cfg.extend(cfg);ciphertext
SerializableCipher.decrypt.call(this,
plaintext;}});}());CryptoJS.mode.CFB
CryptoJS.lib.BlockCipherMode.extend();CFB.Encryptor
cipher.blockSize;generateKeystreamAndEncrypt.call(this,
blockSize);generateKeystreamAndEncrypt.call(this,
generateKeystreamAndEncrypt(words,
this._prevBlock;}cipher.encryptBlock(keystream,
CryptoJS.lib.BlockCipherMode.extend();ECB.Encryptor
{this._cipher.encryptBlock(words,
{this._cipher.decryptBlock(words,
1;data.clamp();data.words[lastBytePos
nPaddingBytes;}};CryptoJS.pad.Iso10126
blockSizeBytes;data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes
1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes
nPaddingBytes;}};CryptoJS.pad.Iso97971
{data.concat(CryptoJS.lib.WordArray.create([0x80000000],
1));CryptoJS.pad.ZeroPadding.pad(data,
{CryptoJS.pad.ZeroPadding.unpad(data);data.sigBytes--;}};CryptoJS.mode.OFB
CryptoJS.lib.BlockCipherMode.extend();var
undefined;}cipher.encryptBlock(keystream,
keystream[i];}}});OFB.Decryptor
OFB;}());CryptoJS.pad.NoPadding
cipherParams.ciphertext.toString(Hex);},parse:
CipherParams.create({ciphertext:
ciphertext});}};}());(function()
BlockCipher._createHelper(AES);}());(function()
this._invSubKeys);},_doCryptBlock:
0x0f0f0f0f);exchangeLR.call(this,
0x0000ffff);exchangeRL.call(this,
0x33333333);exchangeRL.call(this,
0x00ff00ff);exchangeLR.call(this,
0x55555555);exchangeRL.call(this,
0x00ff00ff);exchangeRL.call(this,
0x33333333);exchangeLR.call(this,
0x0000ffff);exchangeLR.call(this,
BlockCipher._createHelper(DES);var
DES.createEncryptor(WordArray.create(keyWords.slice(0,
DES.createEncryptor(WordArray.create(keyWords.slice(2,
DES.createEncryptor(WordArray.create(keyWords.slice(4,
offset);this._des2.decryptBlock(M,
offset);this._des3.encryptBlock(M,
offset);this._des2.encryptBlock(M,
offset);this._des1.decryptBlock(M,
BlockCipher._createHelper(TripleDES);}());(function()
generateKeystreamWord.call(this);},keySize:
StreamCipher._createHelper(RC4);var
{generateKeystreamWord.call(this);}}});C.RC4Drop
StreamCipher._createHelper(RC4Drop);}());CryptoJS.mode.CTRGladman
CryptoJS.lib.BlockCipherMode.extend();function
CTRGladman.extend({processBlock:
undefined;}incCounter(counter);var
counter.slice(0);cipher.encryptBlock(keystream,
keystream[i];}}});CTRGladman.Decryptor
{nextState.call(this);}}},_doProcessBlock:
this._X;nextState.call(this);S[0]
StreamCipher._createHelper(Rabbit);}());CryptoJS.mode.CTR
CryptoJS.lib.BlockCipherMode.extend();var
counter.slice(0);cipher.encryptBlock(keystream,
keystream[i];}}});CTR.Decryptor
{nextState.call(this);}}},_doProcessBlock:
this._X;nextState.call(this);S[0]
StreamCipher._createHelper(RabbitLegacy);}());CryptoJS.pad.ZeroPadding
CryptoJS.enc.Utf8.parse(key_tmp);var
CryptoJS.enc.Utf8.parse(iv_tmp);return
CryptoJS.enc.Utf8.parse(word);let
encrypted.ciphertext.toString().toUpperCase();}return
application/x-www-form-urlencoded;
https://wangluozhe.com/challenge/api/4self.count_number
self.js_obj.call(getSign)}return
self.getParams(page)print(当前参数,
response.json()[data]:print(f当前值:{self.count_number}
{self.count_numberitems[value]})self.count_number
1001):self.request_server(pagepage)time.sleep(1.5)print(f100页的所有数据并加和{self.count_number})if
https://blog.csdn.net/kdl_csdn/article/details/122084863
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback