-- java.lang.Thread.run()V:6
-- this=Lcom/drakeet/purewriter/ald$Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww; <830055181040>
>> inspect 830055181040
## object <830055181040> Lcom/drakeet/purewriter/ald$Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww; in thread <25> RxSingleScheduler-1
(waiting suspended)
-- 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()我刚才尝试在时光机里访问历史记录,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>
第二次:(内容几乎一样我删了)
duangsuse::Echo
我刚才尝试在时光机里访问历史记录,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;…
但是我要知道的弹窗逻辑还没有摸出来
虽然我当然知道如果想规避检查应该怎么做(我只需要再测试一下就知道都是哪些函数在检查破解情况了)
虽然我当然知道如果想规避检查应该怎么做(我只需要再测试一下就知道都是哪些函数在检查破解情况了)
我以为肯定是
但不是(我在 trap 了 Toast 类, 纯纯写作在反修改弹窗时没掉进去 😄)
Toast (原谅 duangsuse 的 Android 开发水平和一年前没大长进)但不是(我在 trap 了 Toast 类, 纯纯写作在反修改弹窗时没掉进去 😄)
duangsuse::Echo
我以为肯定是 Toast (原谅 duangsuse 的 Android 开发水平和一年前没大长进) 但不是(我在 trap 了 Toast 类, 纯纯写作在反修改弹窗时没掉进去 😄)
(当然没人回答也可以,我也可以再猜其他类或者使用 layout inspect 应用)
检查的确有是使用 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
否自动继续,只当没有这个断点
UnicodeDecodeError: 'utf8' codec can't decode byte 0x9e in position 0: invalid start byte