🏂🏂🏂🏂🏂🏻

You Only Live Once!

Stable Diffusion

Case 生成一组人物IP Stable Diffusion模型ReV Animated + ControlNet模型 control_v11p_sd15_openpose text2img - prompt Prompt (masterpiece, best quality, ultra-detailed), (full body:1.2, beautiful detailed face, beautiful detailed eyes, white background,simple background), 1 girl,Splatoon,cute,smile,gray blue hair,Orange sweater,light blue short skirt Negative Prompt (low quality:1.3),(worst quality:1.3) ControlNet骨架图片 效果图片 Reference B站 Stable Diffusion Video ControlNet Stable Diffusion Models ControlNet Models

May 17, 2023 · 1 min · quicksandzn

FFmpeg

FFmpeg官方文档 https://ffmpeg.org/ffmpeg-all.html https://ffmpeg.org/ffmpeg.html 视频信息 ffmpeg -i input.mp4 Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42mp41 creation_time : 2022-01-12T11:23:45.000000Z Duration: 00:00:59.52, start: 0.000000, bitrate: 12123 kb/s Stream #0:0[0x1](eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1080x1920 [SAR 1:1 DAR 9:16], 11802 kb/s, 25 fps, 25 tbr, 25k tbn (default) Metadata: creation_time : 2022-01-12T11:23:45.000000Z handler_name : ?Mainconcept Video Media Handler vendor_id : [0][0][0][0] encoder : AVC Coding Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default) Metadata: creation_time : 2022-01-12T11:23:54....

September 1, 2022 · 3 min · quicksandzn

Elasticsearch

Elasticsearch

July 11, 2022 · 1 min · quicksandzn

Scrapy

Scrapy

July 11, 2022 · 1 min · quicksandzn

网络是怎样连接的

How is the network connected

July 11, 2022 · 1 min · quicksandzn

spring-cloud-starter-alibaba-nacos-config源码分析

初始化将参数配置追加到Environment spring.factories org.springframework.cloud.bootstrap.BootstrapConfiguration=\ com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration public class NacosConfigBootstrapConfiguration { // 初始化Nacos配置信息 @Bean @ConditionalOnMissingBean public NacosConfigProperties nacosConfigProperties() { return new NacosConfigProperties(); } // 初始化NacosConfigService @Bean @ConditionalOnMissingBean public NacosConfigManager nacosConfigManager( NacosConfigProperties nacosConfigProperties) { return new NacosConfigManager(nacosConfigProperties); } // 从Nacos加载远程配置文件 @Bean public NacosPropertySourceLocator nacosPropertySourceLocator( NacosConfigManager nacosConfigManager) { return new NacosPropertySourceLocator(nacosConfigManager); } } public class NacosPropertySourceLocator implements PropertySourceLocator { @Override public PropertySource<?> locate(Environment env) { nacosConfigProperties.setEnvironment(env); ConfigService configService = nacosConfigManager.getConfigService(); if (null == configService) { log....

June 15, 2022 · 6 min · quicksandzn

Apk脱壳

Q 准备工作 Frida frida-15.1.14-py3.8-macosx-10.9-x86_64.egg 放到~目录(pip install frida报错时会出现目录地址) pip install frida pip install frida-tools 网易mumu frida-server-15.1.14-android-x86_64 需要确认底层架构,网易mumu是x86_64 FRIDA-DEXDump 脱壳 adb push ~/Downloads/frida-server-15.1.14-android-x86_64 /data/local adb shell cd /data/local chmod 777 frida-server-15.1.14-android-x86_64 ./frida-server-15.1.14-android-x86_64 通过网易mumu打开APP 通过FRIDA-DEXDump执行 python main.py done !

December 13, 2021 · 1 min · quicksandzn

微信小程序反编译

准备工作 网易mumu模拟器 Root Explorer APK ES文件浏览器 微信 小程序反编译工具 破解 打开微信搜索对应的小程序 最好提前清空微信小程序缓存这样比较好找到对应的小程序 通过Root Explorer找到对应目录 /data/data/com.tencent.mm/MicroMsg/7e0c9d2b7278c1fac318e91eaeae4c0f/appbrand/pkg 通过wxappUnpacker bingo.sh 反编译得到源码

August 19, 2021 · 1 min · quicksandzn

字体加密破解

页面分析 view page source <span class="gzfont" data-v-48736255>&#58928;&#59854;&#58397;&#60492;-&#59854;&#59246;</span> 可以看到以上的字体是有加密的 我们通过gzfont这个class去css中寻找 .gzfont { font-family: gzfont } @font-face { font-family: "gzfont"; src: url(https://example.woff2) format("woff"); font-weight: 400; font-style: normal } src中的url就是字体文件的下载地址 字体文件解析 经过多次刷新发现css里面的字体文件是不会变的,我们只需要把字体文件解析出来匹配好对应关系即可 FontEditor在线浏览字体文件 通过python的TTFont把字体文件解析成XML from fontTools.ttLib import TTFont font = TTFont('/Users/zn/Downloads/font.woff2') font.saveXML('font.xml') 一个GlyphID里面的name对应一个TTGlyph对象,它是用来绘制一个字 <GlyphOrder> <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> <GlyphID id="0" name=".notdef"/> <GlyphID id="1" name=".null"/> <GlyphID id="2" name="nonmarkingreturn"/> <GlyphID id="3" name="x"/> <GlyphID id="4" name="uniE1D0"/> <GlyphID id="5" name="uniE325"/> <GlyphID id="6" name="uniE41D"/> <GlyphID id="7" name="uniE4D9"/> <GlyphID id="8" name="uniE52E"/> <GlyphID id="9" name="uniE630"/> <GlyphID id="10" name="uniE76E"/> <GlyphID id="11" name="uniE891"/> <GlyphID id="12" name="uniE9CE"/> <GlyphID id="13" name="uniEAF2"/> <GlyphID id="14" name="uniEC4C"/> <GlyphID id="15" name="uniF7C2"/> <GlyphID id="16" name="uniF88A"/> </GlyphOrder> <TTGlyph name="uniEAF2" xMin="43" yMin="-40" xMax="523" yMax="716"> <contour> <pt x="133" y="180" on="1"/> <pt x="148" y="103" on="0"/> <pt x="185" y="69" on="1"/> <pt x="221" y="38" on="0"/> <pt x="276" y="35" on="1"/> <pt x="326" y="35" on="0"/> <pt x="384" y="78" on="1"/> <pt x="427" y="123" on="0"/> <pt x="427" y="250" on="0"/> <pt x="387" y="290" on="1"/> <pt x="345" y="331" on="0"/> <pt x="284" y="331" on="1"/> <pt x="257" y="331" on="0"/> <pt x="220" y="321" on="1"/> <pt x="230" y="406" on="1"/> <pt x="236" y="400" on="0"/> <pt x="239" y="399" on="1"/> <pt x="254" y="399" on="0"/> <pt x="245" y="399" on="1"/> <pt x="303" y="411" on="0"/> <pt x="348" y="428" on="1"/> <pt x="394" y="459" on="0"/> <pt x="394" y="524" on="1"/> <pt x="395" y="579" on="0"/> <pt x="361" y="604" on="1"/> <pt x="330" y="635" on="0"/> <pt x="274" y="635" on="1"/> <pt x="222" y="635" on="0"/> <pt x="195" y="604" on="1"/> <pt x="153" y="572" on="0"/> <pt x="142" y="504" on="1"/> <pt x="52" y="520" on="1"/> <pt x="69" y="612" on="0"/> <pt x="127" y="660" on="1"/> <pt x="186" y="699" on="0"/> <pt x="272" y="716" on="1"/> <pt x="326" y="710" on="0"/> <pt x="383" y="683" on="1"/> <pt x="433" y="659" on="0"/> <pt x="487" y="569" on="0"/> <pt x="487" y="470" on="0"/> <pt x="462" y="432" on="1"/> <pt x="445" y="394" on="0"/> <pt x="371" y="371" on="1"/> <pt x="451" y="356" on="0"/> <pt x="487" y="309" on="1"/> <pt x="519" y="247" on="0"/> <pt x="523" y="190" on="1"/> <pt x="523" y="95" on="0"/> <pt x="383" y="-40" on="0"/> <pt x="276" y="-40" on="1"/> <pt x="179" y="-40" on="0"/> <pt x="116" y="18" on="1"/> <pt x="52" y="82" on="0"/> <pt x="43" y="155" on="1"/> <pt x="133" y="174" on="1"/> </contour> <instructions/> </TTGlyph> 读取CMAP code是16进制的数字 对应页面的数字值 name对应字体编码 可以得出 58928==0xe630==uniE630 <cmap_format_4 platformID="0" platEncID="3" language="0"> <map code="0x78" name="x"/><!...

July 27, 2021 · 3 min · quicksandzn

Zuul网关跨域问题

跨域概述 跨域就指着协议,域名,端口不一致,出于安全考虑,跨域的资源之间是无法交互的。简单说就是协议不通,域名不通,端口不同都会产生跨域问题 跨源资源共享(CORS) 跨源资源共享 (CORS) (或通俗地译为跨域资源共享)是一种基于HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其它origin(域,协议和端口),这样浏览器可以访问加载这些资源。跨源资源共享还通过一种机制来检查服务器是否会允许要发送的真实请求,该机制通过浏览器发起一个到服务器托管的跨源资源的"预检"请求。在预检中,浏览器发送的头中标示有HTTP方法和真实请求中会用到的头 遇到的问题 The ‘Access-Control-Allow-Origin’ header contains multiple values ‘, ‘, but .. 单个项目解决跨域问题 @Configuration public class WebMvcConfigurer extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowCredentials(true) .allowedHeaders("*") .allowedOrigins("*") .allowedMethods("*"); } } 因为我们用Zuul做网关,在网关层也配置了CORS跨域问题解决,这样就会导致遇到上述错误 解决方法 在Zuul配置文件添加 sensitiveHeaders: Access-Control-Allow-Origin,Access-Control-Allow-Methods,Access-Control-Allow-Credentials

July 23, 2021 · 1 min · quicksandzn