위챗 애플릿 역컴파일

1. 루트 핸드폰 또는 아날로그 루트
2. RE 파일 관리자, 루트 획득, 보안 센터 ->루트 권한 관리
3. wxapkg 파일 가져오기, 경로: data/data/com.tencent.mm/MicroMsg/1bd6b8205e3a41715b8e2cca72bc50f0/appbrand/pkg/4.github에서 애플릿 컴파일러 https://github.com/qwerty472123/wxappUnpacker를 다운로드한 후 압축을 풀기
5. 컴퓨터 설치 node.그리고 cnpm(문제가 발생하지 않도록 cnpm을 설치하고 npm을 사용하지 않는 것이 좋습니다):
node 다운로드 주소: https://nodejs.org/zh-cn/
6, 터미널 cd를 당신의 clone 또는 다운로드한 컴파일러 스크립트wxappUnpacker 디렉터리에 열고 다음 명령을 입력하여 컴파일러 스크립트의 운행 의존을 설치합니다
1.npm install esprima
2.npm install css-tree
3.npm install cssbeautify
4.npm install vm2
5.npm install uglify-es
6.npm install js-beautify
의존을 설치한 후 역컴파일을 시작합니다.wxapkg 파일
현재 디렉토리에 node wuWxapkg을 입력합니다.js files는 당신이 역컴파일하려는 패키지의 경로입니다. 예를 들어, 역컴파일링이 필요한 파일이 77620009615.wxapkg이 데스크톱 디렉터리(mac컴퓨터)에 압축을 풀었으면 명령을 입력하십시오 node wuWxapkg.js /Users/apple/Desktop/_-776200096_15.wxapkg
참고:
샤오미 8 개발 버전.http://bigota.d.miui.com/9.3.1/miui_MI8_9.3.1_b65fc3a636_9.0.zip
10을 눌러 확장 기능을 켜고 수동으로 설치 패키지를 선택하세요.
위챗 애플릿의 가방과 의존 가방의 접미사는 모두.wxapkg, 진정한 애플릿 패키지 크기는 1M 정도이고 패키지 크기는 2, 3M 심지어 더 많다.역컴파일.wxapkg 종속 팩 오류 보고: Error: This Package is unrecognizable, please decrypted every type of file by hand.컴파일 오류 패키지 반환 결과
참조:
https://www.jianshu.com/p/53e97423383e
https://zhuanlan.zhihu.com/p/56056561
애플릿 패키지 역컴파일링: https://www.sohu.com/a/240107441_396671
node wuJs.js icourtdayone/_819993747_65/packageB/app-service.js
node wuWxml.js icourtdayone/_819993747_65/packageB/page-frame.js

질문


위챗 애플릿 내부 업그레이드 때문에 최근github에서
애플릿 컴파일 도구가 일부 효력을 잃었습니다. node wuWxapkg.js 명령을 실행할 때 $gwx is not defined 오류가 발생합니다.
이로 인해 page-frame.html 파일은 역컴파일할 수 없고 wxss 형식의 파일을 다시 생성할 수 없습니다.
필자가 애플릿 혼동 원본에 대한 분석을 통해 부분wxappUnpacker의 논리 원본을 다시 변경하고 다시 애플릿을 반컴파일하는 데 성공했다.
  • 준비
  • 자세한 내용은 wxappUnpacker의 ReadMe 를 참조하십시오.
  • 위챗 애플릿 패키지 다운로드
  • 구체적으로Baidu 또는 Google 인터넷에 자료가 너무 많아요.
  • 수정wxappUnpackerwuWxss.js 부분 코드는 다음과 같다.
  • ![](http://img.rhett-ni.com/www/uploads/article/2019/03/07/2780138645.jpg)
    
    `function runVM(name,code){`
    
    `let wxAppCode={},handle={cssFile:name};`
    
    `//let vm=new VM({sandbox:Object.assign(new GwxCfg(),{__wxAppCode__:wxAppCode,setCssToHead:cssRebuild.bind(handle)})});`
    
    `let gg = new GwxCfg()`
    
    `let tsandbox = {$gwx:GwxCfg.prototype["$gwx"],__mainPageFrameReady__:GwxCfg.prototype["$gwx"],__wxAppCode__:wxAppCode,setCssToHead:cssRebuild.bind(handle)}`
    
    `let vm = new VM({sandbox:tsandbox});`
    
    `vm.run(code);`
    
    `for(let name in wxAppCode)if(name.endsWith(".wxss")){`
    
    `handle.cssFile=path.resolve(frameName,"..",name);`
    
    `wxAppCode[name]();`
    
    `}`
    
    `}`

    좋은 웹페이지 즐겨찾기