ホームページ >ウェブフロントエンド >jsチュートリアル >クローラー解析 JS 逆某テスト スライディング暗号化 (1)
関連する学習の推奨事項: JavaScript ビデオ チュートリアル
今日は、特定の JS 暗号化を分析して復元します。クロールを完了した人は、この確認コードを知っているはずです。まだ遭遇していない場合は、今後遭遇するでしょう。信じてください。
あまり言うことはありません。時間は貴重です。本題に入りましょう!
公式 Web サイトに入り、今日のトピックのスライド検証、その他の検証タイプの暗号化をクリックして選択します次の方法をマスターすれば、同様です。
まず Unicode エンコーディングを復元し、AST オンライン分析 Web サイト (https://blogz.gitee.io/ast/[1])
を開きます。復元されたコードを
const parser = require("@babel/parser");const traverse = require("@babel/traverse").default;const t = require("@babel/types"); //操作节点的函数,比如判断节点类型,生成新的节点等:const generator = require("@babel/generator").default; //生成还原后的代码const fs = require('fs');var jscode = fs.readFileSync("./slide.js", { encoding: "utf-8"});const visitor = { StringLiteral(path) { delete path.node.extra }}let ast = parser.parse(jscode);traverse(ast, visitor);let {code} = generator(ast, opts = {jsescOption: {"minimal": true}});fs.writeFile('decode_slide.js', code, (err)=>{});复制代码jscode は以前に抽出された JS コードであることに注意してください。最後に、復元されたコードが decode_slide.js ファイルに書き込まれます。次のステップは次のとおりです。難読化された配列を復元します。デバッグ コードを観察すると、すべての配列は JS ファイルの先頭にある大きな配列 KBBji.$_Co に基づいており、同時に配列は多くの変数に割り当てられ、変数名はランダムに生成されます。 したがって、次にしなければならないことは、これらの変数名を見つけて、対応する文字列値に置き換えることです。 AST をオンラインで解析します
const visitor = { VariableDeclaration(path){ const {declarations} = path.node; if(!t.isMemberExpression(declarations[0].init))return; if(declarations[0].init.property.name !== "$_Co")return; if(declarations.length !==3 || declarations[0].init.property === undefined)return; let value1 = declarations[0].id.name; let value2 = declarations[2].id.name; new_array.push(value1, value2); }};复制代码上記ですべての変数名が見つかりました。一度見つかったら、この形式の $_DFCB(66) コードをすべて復元できるため、コードは直感的に操作できます。
同じコードでも読みやすさの違いが一目でわかると思います。これで終わりだと思いますか? No!
コードは復元されましたが、デバッグするときにまだ混乱しています。ウェブサイトのコード、どうすればいいですか?
次に、別のアーティファクト Reres を見てみましょう。その機能は、リクエストをローカルにマップすることです。つまり、ローカル JS を使用してリモート JS ファイルを置き換えることができます。
使用方法については、github を直接参照してください https://github.com/annnhan/ReRes[2]
わかりました。これにより、復元された JS を使用して Web サイト上でデバッグできます。これは非常に強力です。
結果は次のとおりです:
tql では、暗号化パラメーターが差し引かれるため、圧力はかかりません。
バックグラウンド返信 tql 関連するコードを取得してください。
プログラミング学習について詳しく知りたい方は、php training のコラムに注目してください!
以上がクローラー解析 JS 逆某テスト スライディング暗号化 (1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。