手把手教你反编译小程序

本次实验环境

操作系统: win10 10.0.19042

node: v14.17.0

微信开发者工具: Stable 1.05.2110290

前期准备

  1. 在电脑端安装模拟器工具,这里以夜神模拟器为例,

    • 在模拟器中安装微信:用于微信打开小程序时加载小程序包。
    • 在模拟器中文件管理器:用于查看小程序包,这里使用模拟器自带的Amaze。
    • 文件共享路径:可以通过模拟器的文件助手查看文件共享路径,模拟器中的安卓共享路径对应于电脑共享路径。作用是方便后续找到并复制小程序包。
      在这里插入图片描述
  2. 下载反编译工具

    关注微信公众号“安前码后”,然后发送关键字xcx688即可获取。

开始反编译小程序

获取小程序包

  1. 这里以东方财富小程序为例,在夜神模拟器中登录微信,然后找到并打开东方财富小程序

  2. 打开模拟器中的Amaze文件管理器,进入到以下路径查找源码包(可以根据文件的下载时间,区分出你想要的源码包),不同的小程序中间的那段hash值是不一样的/data/data/com.tencent.mm/MicroMsg/7931eb2bec903760d4266d663b5fbd0e/appbrand/pkg

  3. 拷贝小程序文件包至模拟器共享文件夹,为了方便起见,可以先新建了一个文件夹wxcode,将复制的小程序包放到此文件夹下的东方财富文件夹


  4. 然后在电脑端的共享文件夹中,可以看到刚刚复制的小程序包
    在这里插入图片描述

开始解包

  1. 进入反编译工具wxappUnpacker项目的根目录,运行yarn install安装依赖包

  2. wxappUnpacker项目根目录下,执行解包命令node wuWxapkg.js <path/to/xxx.wxapkg>。一个小程序一般会有多个包,我们需要找出主包。执行解包命令时,后面的参数需要具体到主包的文件名。经过多次试验总结发现,一般主包是以 _-开头,文件名与其他的文件看起来是不同的。
    在这里插入图片描述

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

$ node wuWxapkg.js ../dongFangCaiFu/_-2081057737_66.wxapkg
Unpack file ../dongFangCaiFu/_-2081057737_66.wxapkg...Header info:firstMark: 0xbeunknownInfo:  0infoListLength:  6445dataLength:  2158356lastMark: 0xedFile list info:fileCount:  172
Saving files...
Unpack done.
Split app-service.js and make up configs & wxss & wxml & wxs...
deal config ok
deal js ok
deal html ok
deal css ok
splitJs: F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66\app-se
rvice.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 02CB91817FA2198
C64ADF986253F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 0FD5E5F37FA2198
C69B38DF4E56F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 11EAF9667FA2198
C778C91613F8F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 1CC3D0F37FA2198
C7AA5B8F4A5BF1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 212D2CB47FA2198
C474B44B3E9ED1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 24EFAE017FA2198
C4289C606DDFE1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 3CE424D77FA2198
C5A824CD01A9F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 44199CD77FA2198
C227FF4D0319E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 4C52C3117FA2198
C2A34AB16818D1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 4E3F4A367FA2198
C28592231639D1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 50E340B47FA2198
C368528B3AD5E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 5A0161E27FA2198
C3C6709E5BCAF1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 5B1C0EE47FA2198
C3D7A66E321EF1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 61219CD57FA2198
C0747F4D25F6E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 6249DFF57FA2198
C042FB7F293FE1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 680649437FA2198
C0E602144E54F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 69160F537FA2198
C0F706754BA2E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 6987BC357FA2198
C0FE1D432427F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 7B819AE57FA2198
C1DE7F2E233DE1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 8AC58DF47FA2198
CECA3E5F3B31E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 8ACE1F557FA2198
CECA8775277FD1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 8D1643E27FA2198
CEB702BE507CD1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 99D2EAB27FA2198
CFFB482B564BD1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/arrayLikeToArray.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/arrayWithHoles.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/arrayWithoutHoles.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/asyncToGenerator.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/defineProperty.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/interopRequireDefault.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/iterableToArray.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/iterableToArrayLimit.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/nonIterableRest.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/nonIterableSpread.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/objectSpread2.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/slicedToArray.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/toConsumableArray.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/typeof.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
helpers/unsupportedIterableToArray.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 @babel/runtime/
regenerator.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 A2A31AD37FA2198
CC4C572D43E9E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 A2E1F3817FA2198
CC4879B86A08E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 ADC668017FA2198
CCBA0000675CF1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 B33469017FA2198
CD552010620FF1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 B4790A047FA2198
CD21F6203CEAE1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 C6F555147FA2198
CA0933D13385F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 C7D2F7C37FA2198
CA1B49FC4CE1F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 C92323547FA2198
CAF454B537B2F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 D5D51E667FA2198
CB3B37661A5AD1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 D7E073717FA2198
CB1861B76F3EE1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 DD9D93E57FA2198
CBBFBFBE2D12E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 E174D1B77FA2198
C8712B9B0BC0F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 E48C9AB07FA2198
C82EAF2B73D3E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 E9AA86447FA2198
C8FCCEE438F4E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 F19F4B857FA2198
C97F92382008F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 F4E555647FA2198
C92833D6310CE1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 F917D9857FA2198
C9F71B182FFCF1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 FE8EF1457FA2198
C98E8994269DD1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 FF3491C77FA2198
C9952F9C0870E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 app.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/base
-modal/modal.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/call
-login-modal/call-login-modal.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/down
form/downform.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/foot
bar-share/footbar-share.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/foot
bar/footbar.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/imag
e-share copy/image-share.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/imag
e-share/image-share.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/kaih
uform/kaihuform.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/logi
n-modal/login-modal.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/moda
l/modal.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/navb
ar/navbar.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/navi
gator/navigator.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/open
app copy/openapp.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/open
app/openapp.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/stoc
k-list/stock-list.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/user
/user.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 components/zhi-
shu/zhi-shu.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/download
copy/download.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/index/ind
ex.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/kaihu/kai
hu.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/kaihuDeta
il/kaihuDetail.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/download/
download.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/market/ma
rket.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/stockDeta
il/stockDetail.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/gubaDetai
l/gubaDetail.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/protocol/
index.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/LoginInde
x/LoginIndex.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/timeShare
/timeShare.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/timeShare
HK/timeShareHK.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/timeShare
US/timeShareUS.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/SearchPag
e/SearchPage.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/informati
onDetail/informationDetail.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/LoginPage
/Login.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/My/My.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/Bindinged
EMPage/BindingedEMPage.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/zixun/zix
un.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/zixunDeta
il/zixunDetail.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/gubaPost/
gubaPost.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/loginByTe
l/loginByTel.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/BPTest/BP
Test.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/viewDialo
g/viewDialog.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/test/test
.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/bankuai/b
ankuai.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/data/data
.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/me/me.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/error/err
or.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/Agreement
View/AgreementView.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/fissionkh
Auth/fissionkhAuth.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 pages/fissionkh
AuthSucc/fissionkhAuthSucc.js
Splitting "F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66\app-
service.js" done.
Decompile ./components/base-modal/modal.wxml...
Decompile success!
Decompile ./components/call-login-modal/call-login-modal.wxml...
Decompile success!
Decompile ./components/downform/downform.wxml...
Decompile success!
Decompile ./components/footbar-share/footbar-share.wxml...
Decompile success!
Decompile ./components/footbar/footbar.wxml...
Decompile success!
Decompile ./components/image-share copy/image-share.wxml...
Decompile success!
Decompile ./components/image-share/image-share.wxml...
Decompile success!
Decompile ./components/kaihuform/kaihuform.wxml...
Decompile success!
Decompile ./components/login-modal/login-modal.wxml...
Decompile success!
Decompile ./components/modal/modal.wxml...
Decompile success!
Decompile ./components/navbar/navbar.wxml...
Decompile success!
Decompile ./components/navigator/navigator.wxml...
Decompile success!
Decompile ./components/openapp copy/openapp.wxml...
Decompile success!
Decompile ./components/openapp/openapp.wxml...
Decompile success!
Decompile ./components/stock-list/stock-list.wxml...
Decompile success!
Decompile ./components/user/user.wxml...
Decompile success!
Decompile ./components/zhi-shu/zhi-shu.wxml...
Decompile success!
Decompile ./pages/AgreementView/AgreementView.wxml...
Decompile success!
Decompile ./pages/BPTest/BPTest.wxml...
Decompile success!
Decompile ./pages/BindingedEMPage/BindingedEMPage.wxml...
Decompile success!
Decompile ./pages/LoginIndex/LoginIndex.wxml...
Decompile success!
Decompile ./pages/LoginPage/Login.wxml...
Decompile success!
Decompile ./pages/My/My.wxml...
Decompile success!
Decompile ./pages/SearchPage/SearchPage.wxml...
Decompile success!
Decompile ./pages/bankuai/bankuai.wxml...
Decompile success!
Decompile ./pages/data/data.wxml...
Decompile success!
Decompile ./pages/download copy/download.wxml...
Decompile success!
Decompile ./pages/download/download.wxml...
Decompile success!
Decompile ./pages/error/error.wxml...
Decompile success!
Decompile ./pages/fissionkhAuth/fissionkhAuth.wxml...
Decompile success!
Decompile ./pages/fissionkhAuthSucc/fissionkhAuthSucc.wxml...
Decompile success!
Decompile ./pages/gubaDetail/gubaDetail.wxml...
Decompile success!
Decompile ./pages/gubaPost/gubaPost.wxml...
Decompile success!
Decompile ./pages/index/index.wxml...
Decompile success!
Decompile ./pages/informationDetail/informationDetail.wxml...
Decompile success!
Decompile ./pages/kaihu/kaihu.wxml...
Decompile success!
Decompile ./pages/kaihuDetail/kaihuDetail.wxml...
Decompile success!
Decompile ./pages/loginByTel/loginByTel.wxml...
Decompile success!
Decompile ./pages/market/market.wxml...
Decompile success!
Decompile ./pages/me/me.wxml...
Decompile success!
Decompile ./pages/protocol/index.wxml...
Decompile success!
Decompile ./pages/stockDetail/stockDetail.wxml...
Decompile success!
Decompile ./pages/test/test.wxml...
Decompile success!
Decompile ./pages/timeShare/timeShare.wxml...
Decompile success!
Decompile ./pages/timeShareHK/timeShareHK.wxml...
Decompile success!
Decompile ./pages/timeShareUS/timeShareUS.wxml...
Decompile success!
Decompile ./pages/viewDialog/viewDialog.wxml...
Decompile success!
Decompile ./pages/zixun/zixun.wxml...
Decompile success!
Decompile ./pages/zixunDetail/zixunDetail.wxml...
Decompile success!
Guess wxss(first turn)...
Regard F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66\app.wxssas pure import file.
Regard F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66\pages\ba
nkuai\bankuai.wxss as pure import file.
Regard F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66\pages\gu
baDetail\gubaDetail.wxss as pure import file.
Regard F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66\pages\ti
meShare\timeShare.wxss as pure import file.
Import count info: {"./app.wxss":7,"./pages/index/index.wxss":5,"./pages/gubaD
etail/gubaDetail.wxss":2,"./timeShareCommon.wxss":4}
Guess wxss(first turn) done.
Generate wxss(second turn)...
Generate wxss(second turn) done.
Save wxss...
saveDir: F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66
Split and make up done.
Delete files...
Deleted.File done.
Total use: 5.626s
  1. 如果想单独执行config、js、wxml、wxss的反编译可以在解包时加-o参数不做后续操作

  2. 工具的其他脚本的用法:

    • node wuConfig.js <files...> 将 app-config.json 中的内容拆分到各个文件对应的 .json 和 app.json , 并通过搜索 app-config.json 所在文件夹下的所有文件尝试将 iconData 还原为 iconPath 。
    • node wuJs.js <files...> 将 app-service.js (或小游戏中的 game.js ) 拆分成一系列原先独立的 javascript 文件,并使用 Uglify-ES 美化,从而尽可能还原编译前的情况。
    • node wuWxml.js [-m] <files...> 将编译/混合到 page-frame.html ( 或 app-wxss.js ) 中的 wxml 和 wxs 文件还原为独立的、未编译的文件。如果加上-m指令,就会阻止block块自动省略,可能帮助解决一些相关过程的 bug 。
    • node wuWxss.js <dirs...> 通过获取文件夹下的 page-frame.html ( 或 app-wxss.js ) 和其他 html 文件的内容,还原出编译前 wxss 文件的内容。
    • node wuWxapkg.js [-o] [-d] [-s=<Main Dir>] <files...> 将 wxapkg 文件解包,并将包中上述命令中所提的被编译/混合的文件自动地恢复原状。如果加上-o指令,表示仅解包,不做后续操作。如果加上-d指令,就会保留编译/混合后所生成的新文件,否则会自动删去这些文件。同时,前面命令中的指令也可直接加在这一命令上。

导入开发者工具

打开微信开发者工具,导入项目即可。

在本次的东方财富小程序解包后,注意在开发者工具的详情--->本地设置

  • 勾掉e6转es5(这个小程序貌似并没有使用es6语法)
  • 注意勾选不校验合法域名

解包其它小程序可能项目配置略有不同,多调试调试。

扩展小结

体验版解包

体验版的需要找到debug开头的文件(形如:debug_xxx 是没有后缀的),然后拿到文件后手动添加wxapkg后缀再执行以上操作,即可完成解包。

解包时提示是子包

解决:有些小程序可能采取了分包策略,所以就有一个主包和多个子包之分。经过多次试验总结发现,一般主包是以 _-开头,文件名与其他的文件看起来是不同的。

在这里插入图片描述

写在最后

今天的干货就分享到这里。欢迎一键三连,持续关注“安前码后”,一个只输出干货而不是随大流的技术号。另外,赚钱的号“韭盾”,也在持续开发中,有投资兴趣的铁子们可以先关注,绝对是好物。 加油,铁子们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/213937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文笔记:A review on multi-label learning

一、介绍 传统的监督学习是单标签学习&#xff0c;但是现实中一个实例可能对应多个标签。这篇文章介绍了多标签分类的定义和评价指标、多标签学习的算法还有其他相关的任务。 二、问题相关定义 2.1 多标签学习任务 假设 X R d X R^d XRd&#xff0c;表示d维的输入空间&am…

日本服务器:确保其稳定性的几个要点

​  在租用日本服务器时&#xff0c;用户们大多一定会关注它的稳定性&#xff0c;其实这些顾及都是正常的。毕竟&#xff0c;网站要想正常运行&#xff0c;保障服务器稳定是关键。本文将讨论有关如何保障日本服务器稳定性的一些有用技巧&#xff0c;希望对您有所帮助。 1.注重…

SpringBoot 启动加载器解析

计时器介绍 启动加载器实战 实现方式1 实现CommandLineRunner接口重写run方法通过Order进行排序 示例: Component Order(1) public class FirstCommandlineRunner implements CommandLineRunner {Overridepublic void run(String... args) throws Exception {System.out.pr…

一篇上手机器学习

一、上手机器学习的几个阶段 上手机器学习&#xff0c;第一步当然是看完我的这篇文章啦~&#xff0c;然后就按以下步骤来就可以了&#xff1a; 学习Python编程语言&#xff1a;Python是一种易于学习的高级编程语言&#xff0c;广泛应用于机器学习领域。你可以通过学习Python的…

第三节、项目支付功能实战-微信支付平台接入流程,小程序账号注册、商户注册

简介 本篇介绍小程序的注册流程、商户平台的注册流程、以及小程序和商户平台如何进行绑定。 微信小程序注册 由于项目中使用了小程序进行支付&#xff0c;所以首先来注册小程序。小程序注册网站如下&#xff1a;小程序注册地址 小程序账号注册 1、链接页面点击“前往注册”…

carla安装中的问题

1、carla carla安装完后&#xff0c;需要使用python调用API去更换地图&#xff0c;增加车辆等 使用Python调用API过程中可能会报错&#xff1a; 报错1&#xff1a;carla API&#xff08;Carla包&#xff09;版本不对 **解决方法&#xff1a;**需要将这个目录下的三个文件拷…

数学建模算法

算法部分 1. 评价类模型2. TOPSIS3. 线性规划4. 聚类分析5. 预测模型6. 拉伊达准则(对异常值进行剔除)7. 数据拟合8. 图论代码练习1. 模拟圆周率2. 斐波那契数列3. 四只鸭子落在一个圆中概率4. 方程2: y" uy y,初值y(0) 1,y(0) 0 算法讲解 matlab代码大全 1. 评价类模型…

【Python】修改pip 默认安装位置

使用pip安装的时候&#xff0c;一般是默认安装在c盘里的。这样做很容易会让c盘的文件堆满。那么如何让pip安装的包放入d盘呢&#xff1f; 查看pip默认安装的位置 在cmd里输入python -m site&#xff0c;这里可以看到&#xff0c;安装包会默认下载到c盘中 从这里可以看到&am…

【Spring教程15】Spring框架实战:详解解读AOP的工作流程和AOP的核心概念

目录 1 AOP工作流程2 AOP核心概念 欢迎大家回到《 Java教程之Spring30天快速入门》&#xff0c;本教程所有示例均基于Maven实现&#xff0c;如果您对Maven还很陌生&#xff0c;请移步本人的博文《 如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》&#xff0c;本文…

如何使用cpolar+Inis在Ubuntu系统快速搭建本地博客网站公网可访问

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总…

AspNetCore 中使用 Knife4jUI 更加友好的Swagger界面

&#x1f680;介绍 aspnetcore.knife4j是一个基于.NET Core平台的Swagger UI库&#xff0c;它提供了API文档的生成和管理功能。这个库的前身是swagger-bootstrap-ui&#xff0c;在Java项目中广泛使用&#xff0c;由于其优秀的界面和易用性被许多开发者所推崇。现在&#xff0c…

LV.13 D2 开发板启动流程 学习笔记

一、开发板启动过程 EMMC&#xff1a;相当于电脑的外存&#xff0c;断电不丢失 开发板上电后首先运行SOC内部iROM中固化的代码(BL0)&#xff0c;这段代码先对基本的软硬件环境(时钟等...)进行初始化&#xff0c;然后再检测拨码开关位置获取启动方式&#xff0c;然后再将对应存储…

基于SSM+MySQL学生宿舍管理系统的设计与实现(源码+数据库+文档)

摘 要 近年来&#xff0c;随着计算机技术的不断发展和运用&#xff0c;许多实际问题都得到了较好地解决。随着现代社会对企业经营的需求日益增长&#xff0c;企业的无纸办公也逐渐得到了推广。本学生宿舍管理系统的设计开发&#xff0c;目标就是解决宿舍管理复杂的人为管理&a…

[23] Self-conditioned Image Generation via Generating Representations

[paper | code] 用生成对象本身作为控制信号&#xff0c;实现无条件图像生成。训练阶段。Step1&#xff1a;用预训练模型&#xff08;例如&#xff1a;Moco v3&#xff09;提取生成对象的特征编码&#xff1b;Step2&#xff1a;基于特征编码&#xff0c;训练一个扩散模型RDM&a…

pycharm手动安装包

1.下载对应的包 TTS PyPI 2.手动解压&#xff0c;找到文件放到pycharm对应项目的lib文件夹中 以TTS包为例&#xff0c;找到下载并解压的包中的2个文件&#xff0c;一个名称一个info结尾 3.放到项目的lib文件夹中 eg&#xff1a;路径&#xff1b;C:\doc\myProject\speaker\venv…

Android View的 getHeight 和 getMeasuredHeight 的区别

前言 先简单复习一下Android View 的 绘制顺序&#xff1a; 1、onMeasure&#xff08;测量&#xff09;&#xff0c;先根据构造器传进来的LayoutParams&#xff08;布局参数&#xff09;&#xff0c;测量view宽高。 2、onLayout&#xff08;布局&#xff09;&#xff0c;再根…

SQL进阶 | 自连接

概述 SQL的自连接是指在一个SQL表中&#xff0c;使用自身表格中的实例进行联接并查询的操作。自连接通常使用别名来标识一个表格&#xff0c;在自连接中&#xff0c;表格被视为两个不同的表格&#xff0c;并分别用不同的别名来标识。然后&#xff0c;在WHERE子句中使用这些别名…

二十、FreeRTOS之Tickless低功耗模式

本节需要掌握以下内容&#xff1a; 1&#xff0c;低功耗模式简介&#xff08;了解&#xff09; 2&#xff0c; Tickless模式详解&#xff08;熟悉&#xff09; 3&#xff0c; Tickless模式相关配置项&#xff08;掌握&#xff09; 4&#xff0c;Tickless低功耗模式实验&…

自定义异步任务管理器和线程

import com.lancoo.common.utils.Threads; import com.lancoo.common.utils.spring.SpringUtils;import java.util.TimerTask; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit;/*** 异步任务管理器* * author lancoo*/ public c…

操作系统大会 openEuler Summit 2023即将召开,亮点不容错过

【12月11日&#xff0c;北京】数字化、智能化浪潮正奔涌而来。操作系统作为数字基础设施的底座&#xff0c;已经成为推动产业数字化、智能化发展的核心力量&#xff0c;为数智未来提供无限可能。12月15-16日&#xff0c;以“崛起数字时代 引领数智未来”为主题的操作系统大会 &…