duangsuse::Echo
718 subscribers
4.26K photos
130 videos
583 files
6.48K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
   -- com.drakeet.purewriter.tn.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/Pac
kageInfo;:6
-- com.drakeet.purewriter.tn.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/content/Context;Ljava/lang/String;)Z:1
-- com.drakeet.purewriter.tn.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/content/Context;)Z:4
-- com.drakeet.purewriter.tn.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Lcom/drakeet/purewriter/Xxxxx;)V:0
-- com.drakeet.purewriter.to.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww()V:2
-- com.drakeet.purewriter.aiw.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Lcom/drakeet/purewriter/ago;)V:9
-- this=Lcom/drakeet/purewriter/aiw; <830060197552>
-- com.drakeet.purewriter.agm.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Lcom/drakeet/purewriter/ago;)V:9
-- this=Lcom/drakeet/purewriter/aiw; <830060197552>
-- com.drakeet.purewriter.aiy$Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.run()V:2
-- this=Lcom/drakeet/purewriter/aiy$Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww; <830063701456>
-- com.drakeet.purewriter.alf.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww()Ljava/lang/Void;:9

从调用堆上截取下的部分,最后调用了 getPackageInfo()
题外话:
试用一下,这真是目前为止我见过 Android 上做得最用心的字处理器了
This media is not supported in your browser
VIEW IN TELEGRAM
真心不错
甚至比 Atom 还用心(
我刚才尝试在时光机里访问历史记录,drakeet 又来检查盗版了(🤣
这次还弹了窗

>> ## trace thread <25> RxSingleScheduler-1        (running suspended)
-- android.content.pm.PackageInfo.<init>(Landroid/os/Parcel;Landroid/content/pm/PackageInfo$1;)V:0
-- this=Landroid/content/pm/PackageInfo; <830058655392>
-- x0=Landroid/os/Parcel; <830063643872>
-- x1=None
-- snip --
-- com.drakeet.purewriter.tn.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/Pac
kageInfo;:6
-- com.drakeet.purewriter.tn.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/content/Context;Ljava/lang/String;)Z:1
-- com.drakeet.purewriter.tn.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/content/Context;)Z:4
-- com.drakeet.purewriter.tn.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Lcom/drakeet/purewriter/Xxxxx;)V:0
-- com.drakeet.purewriter.to.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww()V:2
-- com.drakeet.purewriter.aiw.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Lcom/drakeet/purewriter/ago;)V:9
-- this=Lcom/drakeet/purewriter/aiw; <830055555088>
-- com.drakeet.purewriter.agm.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Lcom/drakeet/purewriter/ago;)V:9
-- this=Lcom/drakeet/purewriter/aiw; <830055555088>
-- com.drakeet.purewriter.aiy$Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.run()V:2
-- this=Lcom/drakeet/purewriter/aiy$Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww; <830058653504>
-- com.drakeet.purewriter.alf.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww()Ljava/lang/Void;:9
-- this=Lcom/drakeet/purewriter/alf; <830058654208>
-- com.drakeet.purewriter.alf.call()Ljava/lang/Object;:0
-- this=Lcom/drakeet/purewriter/alf; <830058654208>


第二次:(内容几乎一样我删了)
如果我不知道弹出窗口的逻辑,这次显然是白来
我想去问个问题 — 弹出窗口应该使用了哪些类
然后直接往 call stack 上抓现行 😅
我以为肯定是 Toast (原谅 duangsuse 的 Android 开发水平和一年前没大长进)
但不是(我在 trap 了 Toast 类, 纯纯写作在反修改弹窗时没掉进去 😄
检查的确有是使用 Toast 的, 但不确定

> break-list
## Active Hooks
-- Hook <536870918> com.drakeet.purewriter.Ww <class 'andbug.vm.Class'>
-- Hook <536870919> android.content.pm.PackageInfo <class 'andbug.vm.Class'>
>> inspect 536870918
## object <536870918> not found
>> b android.widget.Toast
## Setting Hooks
-- Hooked <536870920> android.widget.Toast <class 'andbug.vm.Class'>
>> ## Breakpoint hit in thread <1> main (running suspended), process suspended.
-- android.widget.Toast.cancel()V:0
-- com.drakeet.purewriter.FolderView.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(I)V:12
-- com.drakeet.purewriter.FolderView.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/view/MenuItem;)Z:14
-- android.support.v7.widget.Toolbar$1.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/view/MenuItem;)Z:10
-- android.support.v7.widget.ActionMenuView$Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Lcom/drakeet/purewr
iter/es;Landroid/view/MenuItem;)Z:10
-- com.drakeet.purewriter.es.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Lcom/drakeet/purewriter/es;Landroid/view/MenuItem;)Z:6
-- com.drakeet.purewriter.eu.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww()Z:18
-- com.drakeet.purewriter.es.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/view/MenuItem;Lcom/drakeet/purewriter/ez;I)Z:12
-- com.drakeet.purewriter.ex.onItemClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)V:27
假设是随机决定是否弹出的话,说不定有这个功能会比较好:

让断点针对特定的类路径 regexp, 如果调用者的类路径 match 就正常中断/打印 call stack
否自动继续,只当没有这个断点
这次运气比较好,随便修改一个试试(可惜不是 smalidea, navi 目前能修改的类型很少)
WwwwWWWwWWWwWWwwwwww
This media is not supported in your browser
VIEW IN TELEGRAM
j.l.String
count=5
offset=0
value='\x9e\xd8\x8b\xa4e'
hashCode=-10052226
UnicodeDecodeError: 'utf8' codec can't decode byte 0x9e in position 0: invalid start byte
PACK 73 6
我随便把一 a.s.v.w.Toolbar 对象的 Wwwwwwwwwwwww
改成了 6