Scrapy

Scrapy

July 11, 2022 · 1 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