亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁(yè) > IT技術(shù) > 微信平臺(tái) > 正文

              看見有意思的小程序想借鑒一下?10分鐘帶你學(xué)會(huì)微信小程序的反編譯
              2021-07-26 10:10:06

              ?

              以中銀E路通小程序?yàn)槔榻B下小程序反編譯操作流程

              實(shí)驗(yàn)環(huán)境

              • 操作系統(tǒng):MacOS10.13.6

              • node:v10.8.0

              • 微信開發(fā)者工具:Stable v1.02.1910120

              前置準(zhǔn)備

              • 需要安裝pc端模擬器工具可以選擇網(wǎng)易MuMu,或者其它模擬器

              • 模擬器設(shè)置中配置共享文件夾

              • 下載反編譯工具wxappUnpacker

              模擬器內(nèi)軟件安裝

              需要安裝以下兩個(gè)軟件

              看見有意思的小程序想借鑒一下?10分鐘帶你學(xué)會(huì)微信小程序的反編譯_微信小程序

              • RE文件管理器(查看小程序壓縮包)

              • 微信(使用微信打開小程序以下載小程序包)

              獲取小程序包

              1.使用自己手機(jī)上的微信打開"中銀E路通"小程序,可以添加到"我的小程序"
              2.打開模擬器的微信并登錄
              3.在模擬器微信的下拉小程序最近使用歷史中打開"中銀E路通",如果歷史記錄中沒有就在我的小程序中找一找
              4.打開小程序等待加載之后就可以去找源碼包了
              5.打開RE文件管理器,進(jìn)入到以下路徑查找源碼包(可以根據(jù)下載時(shí)間區(qū)分出你想要的源碼包)

              1. /data/data/com.tencent.mm/MicroMsg/4c8188dbf07eec893d0ac90974657aeb/appbrand/pkg

              6.拷貝小程序包至模擬器共享文件夾,為了方便解包重命名為zyel

              ?

              看見有意思的小程序想借鑒一下?10分鐘帶你學(xué)會(huì)微信小程序的反編譯_微信小程序_02

              獲取完畢。

              開始解包

              解包流程

              1.進(jìn)入克隆下來的反編譯工具根目錄
              如果沒有安裝過npm包就先執(zhí)行安裝

              1. npm install

              2.解包

              1. node wuWxapkg.js <path/to/zyel.wxapkg>

              可以看到命令行輸出如下提示

              1. Unpack file zyel2.wxapkg...

              2. ?

              3. Header info:

              4. firstMark: 0xbe

              5. unknownInfo: 0

              6. infoListLength: 1547

              7. dataLength: 971189

              8. lastMark: 0xed

              9. ?

              10. File list info:

              11. fileCount: 42

              12. { name: '/components/home/images/home-icon1.png',

              13. off: 1561,

              14. size: 2969 }

              15. { name: '/components/home/images/home-load-btn.png',

              16. off: 4530,

              17. size: 235 }

              18. { name: '/components/key/imgs/back.png', off: 4765, size: 4369 }

              19. { name: '/images/arrow-right.png', off: 9134, size: 223 }

              20. { name: '/images/detailsCoins-btn1-ac.png',

              21. off: 9357,

              22. size: 1180 }

              23. { name: '/images/detailsCoins-btn1.png', off: 10537, size: 614 }

              24. { name: '/images/detailsCoins-btn2-ac.png',

              25. off: 11151,

              26. size: 936 }

              27. { name: '/images/detailsCoins-btn2.png', off: 12087, size: 546 }

              28. { name: '/images/home-ac.png', off: 12633, size: 2281 }

              29. { name: '/images/home.png', off: 14914, size: 1565 }

              30. { name: '/images/mine-ac.png', off: 16479, size: 2324 }

              31. { name: '/images/mine-icon1.png', off: 18803, size: 1115 }

              32. { name: '/images/mine-icon3.png', off: 19918, size: 852 }

              33. { name: '/images/mine-icon4.png', off: 20770, size: 1038 }

              34. { name: '/images/mine-icon5.png', off: 21808, size: 1039 }

              35. { name: '/images/mine-icon6.png', off: 22847, size: 9137 }

              36. { name: '/images/mine-icon7.png', off: 31984, size: 1796 }

              37. { name: '/images/mine.png', off: 33780, size: 1682 }

              38. { name: '/images/ranking-one.png', off: 35462, size: 4883 }

              39. { name: '/images/ranking-three.png', off: 40345, size: 4993 }

              40. { name: '/images/ranking-two.png', off: 45338, size: 4928 }

              41. { name: '/images/shop-ac.png', off: 50266, size: 2393 }

              42. { name: '/images/shop.png', off: 52659, size: 1807 }

              43. { name: '/app-config.json', off: 54466, size: 18010 }

              44. { name: '/app-service.js', off: 72476, size: 728734 }

              45. { name: '/pages/CSR/CSR.html', off: 801210, size: 3759 }

              46. { name: '/pages/card/card.html', off: 804969, size: 5518 }

              47. { name: '/pages/coinRecord/coinRecord.html',

              48. off: 810487,

              49. size: 3832 }

              50. { name: '/pages/coinShop/coinShop.html', off: 814319, size: 469 }

              51. { name: '/pages/detailsCoins/detailsCoins.html',

              52. off: 814788,

              53. size: 4498 }

              54. { name: '/pages/home/home.html', off: 819286, size: 5043 }

              55. { name: '/pages/integralDec/integralDec.html',

              56. off: 824329,

              57. size: 3153 }

              58. { name: '/pages/integralTask/integralTask.html',

              59. off: 827482,

              60. size: 5007 }

              61. { name: '/pages/login/login.html', off: 832489, size: 1649 }

              62. { name: '/pages/mine/mine.html', off: 834138, size: 2429 }

              63. { name: '/pages/orderList/orderList.html',

              64. off: 836567,

              65. size: 5701 }

              66. { name: '/pages/ranking/ranking.html', off: 842268, size: 4388 }

              67. { name: '/pages/share/share.html', off: 846656, size: 5327 }

              68. { name: '/pages/shop/creditBuy.html', off: 851983, size: 2730 }

              69. { name: '/pages/shop/shop.html', off: 854713, size: 3175 }

              70. { name: '/pages/welfare/welfare.html', off: 857888, size: 751 }

              71. { name: '/page-frame.html', off: 858639, size: 114111 }

              72. Saving files...

              73. Unpack done.

              74. Split app-service.js and make up configs & wxss & wxml & wxs...

              75. Decompile ./pages/CSR/CSR.wxml...

              76. Decompile success!

              77. Decompile ./pages/card/card.wxml...

              78. Decompile success!

              79. Decompile ./pages/coinRecord/coinRecord.wxml...

              80. Decompile success!

              81. Decompile ./pages/coinShop/coinShop.wxml...

              82. Decompile success!

              83. Decompile ./pages/detailsCoins/detailsCoins.wxml...

              84. Decompile success!

              85. Decompile ./pages/home/home.wxml...

              86. Decompile success!

              87. Decompile ./pages/integralDec/integralDec.wxml...

              88. Decompile success!

              89. Decompile ./pages/integralTask/integralTask.wxml...

              90. Decompile success!

              91. Decompile ./pages/login/login.wxml...

              92. Decompile success!

              93. Decompile ./pages/mine/mine.wxml...

              94. Decompile success!

              95. Decompile ./pages/orderList/orderList.wxml...

              96. Decompile success!

              97. Decompile ./pages/ranking/ranking.wxml...

              98. Decompile success!

              99. Decompile ./pages/share/share.wxml...

              100. Decompile success!

              101. Decompile ./pages/shop/creditBuy.wxml...

              102. Decompile success!

              103. Decompile ./pages/shop/shop.wxml...

              104. Decompile success!

              105. Decompile ./pages/welfare/welfare.wxml...

              106. Decompile success!

              107. Guess wxss(first turn)...

              108. Splitting "/Users/gangxue/demo/wxappUnpacker/zyel/app-service.js" done.

              109. Import count info: {}

              110. Guess wxss(first turn) done.

              111. Generate wxss(second turn)...

              112. Generate wxss(second turn) done.

              113. Save wxss...

              114. Split and make up done.

              115. Delete files...

              116. Deleted.

              117. ?

              118. File done.

              119. Total use: 3148.983ms

              3.如果想單獨(dú)執(zhí)行config、js、wxml、wxss的反編譯可以在解包時(shí)加-o參數(shù)不做后續(xù)操作

              工具用法

              • node wuConfig.js<files...>?將 app-config.json 中的內(nèi)容拆分到各個(gè)文件對(duì)應(yīng)的 .json 和 app.json , 并通過搜索 app-config.json 所在文件夾下的所有文件嘗試將 iconData 還原為 iconPath 。

              • node wuJs.js<files...>?將 app-service.js (或小游戲中的 game.js ) 拆分成一系列原先獨(dú)立的 javascript 文件,并使用 Uglify-ES 美化,從而盡可能還原編譯前的情況。

              • node wuWxml.js[-m]<files...>?將編譯/混合到 page-frame.html ( 或 app-wxss.js ) 中的 wxml 和 wxs 文件還原為獨(dú)立的、未編譯的文件。如果加上?-m指令,就會(huì)阻止?block塊自動(dòng)省略,可能幫助解決一些相關(guān)過程的 bug 。

              • node wuWxss.js<dirs...>?通過獲取文件夾下的 page-frame.html ( 或 app-wxss.js ) 和其他 html 文件的內(nèi)容,還原出編譯前 wxss 文件的內(nèi)容。

              • node wuWxapkg.js[-o][-d][-s=<MainDir>]<files...>?將 wxapkg 文件解包,并將包中上述命令中所提的被編譯/混合的文件自動(dòng)地恢復(fù)原狀。如果加上?-o指令,表示僅解包,不做后續(xù)操作。如果加上?-d指令,就會(huì)保留編譯/混合后所生成的新文件,否則會(huì)自動(dòng)刪去這些文件。同時(shí),前面命令中的指令也可直接加在這一命令上。~~而如果需要解壓分包,請(qǐng)先解壓主包,然后執(zhí)行?node wuWxapkg.js[-d]-s=<MainDir><subPackages...>,其中?MainDir為主包解壓地址。除?-d與?-s外,這些指令兩兩共存的后果是未定義的(當(dāng)然,是不會(huì)有危險(xiǎn)的)。~~

              導(dǎo)入開發(fā)者工具

              打開微信開發(fā)者工具,導(dǎo)入項(xiàng)目即可
              注意在中銀E路通解包后的項(xiàng)目設(shè)置中

              • 注意勾選不校驗(yàn)合法域名

              • 勾掉e6轉(zhuǎn)es5(這個(gè)小程序貌似并沒有使用es6語法)

              看見有意思的小程序想借鑒一下?10分鐘帶你學(xué)會(huì)微信小程序的反編譯_微信小程序_03

              解包其它小程序可能項(xiàng)目配置略有不同。

              看見有意思的小程序想借鑒一下?10分鐘帶你學(xué)會(huì)微信小程序的反編譯_微信小程序_04

              本文摘自 :https://blog.51cto.com/x

              開通會(huì)員,享受整站包年服務(wù)立即開通 >