관련 학습 권장 사항: javascript 비디오 튜토리얼
오늘은 특정 JS 암호화를 분석하고 복원할 것입니다. 아직 크롤러를 사용해 본 적이 없는 사람이라면 이 인증 코드를 알아야 합니다. 앞으로 저를 만나시면 저를 믿으세요
말할 것도 없고, 시간은 소중합니다. 본론으로 들어가겠습니다!
공식 웹사이트에 들어가서 선택하세요. 오늘의 주제 슬라이딩 검증은 다음 방법을 마스터하는 한 다른 검증 유형의 암호화와 유사합니다!
버튼을 클릭하여 패킷을 캡처하고 드래그하세요. 요청 데이터 패킷은 다음과 같습니다.
실제로 해야 할 일은 다음과 같습니다. w
암호화를 클릭하면 암호화된 JS 파일을 볼 수 있으며 분석을 위해 로컬에 저장할 수 있습니다.
디버깅을 통해 유니코드 형식의 인코딩과 배열 이름의 혼동이 많은 것을 확인할 수 있습니다.
기존의 해결 방법은 브라우저 콘솔에 입력하고 사용자가 Lushan Mountain의 진정한 모습을 볼 수 있지만 이 방법은 너무 번거롭습니다. 다음으로 AST를 사용하여 복원합니다!
먼저 유니코드 인코딩을 복원하고, AST 온라인 분석 웹사이트를 엽니다(https://blogz.gitee.io/ast/[1][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)=>{});复制代码
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); }};复制代码
같은 코드라도 한눈에 가독성의 차이를 알 수 있다고 생각합니다. 이것이 끝이라고 생각하시나요? 아니요!
이제 코드는 복원되었지만 웹사이트에서 디버깅할 때 여전히 난독화된 코드가 남아 있는데 어떻게 해야 할까요?
다음으로 요청을 로컬에 매핑하는 데 사용되는 또 다른 아티팩트인 Reres를 살펴보겠습니다. 즉, 로컬 JS를 사용하여 원격 JS 파일을 대체할 수 있습니다.
사용법은 github을 직접 참조하세요 https://github.com/annnhan/ReRes[2]
이것으로 복원된 JS를 사용하여 웹사이트에서 디버깅할 수 있습니다. 너무 강력합니다!
효과는 다음과 같습니다:
tql, 이제 암호화 매개변수가 공제되고 부담이 없습니다!
백엔드 응답 tql 관련 코드를 받아보세요!
프로그래밍 학습에 대해 더 자세히 알고 싶다면 php training 칼럼을 주목해주세요!
위 내용은 크롤러 분석 JS 역방향 특정 테스트 슬라이딩 암호화 (1)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!