|
[原创]**应用加固的脱壳分析和修复
你好,看到你修改过的apktool的里面解析AXML用了这样的代码: if (DeAndroidManifest == 1) { if ((resourceID < 16842752) || (resourceID > 16843622)) { LOGGER.info(String.format("Repair ResourceID Bad ID:[%d]", new Object[] { Integer.valueOf(resourceID) })); resourceID = 16842755; } } 请问 1.DeAndroidManifest 这个变量什么时候赋值为1?只看到一开始有初始化为0,没看到有相关的赋值语句啊。 2.((resourceID < 16842752) || (resourceID > 16843622))以及16842755这三个id是怎么得来的呢? 望能指点! |
|
[求助]有些第三方SO使用时必须包/类名与原包,类一致,有没有什么办法不受这种限制
如果只是想原封不动地调用原来的那个so,那提供两个思路: 第一种办法:新建一个新的类,继承原来的调用so的那个类 第二种办法:创建一个与修改后的包名想对应.so文件,再在这个.so文件去调用原来的.so文件中的这两个native函数 |
|
[求助]IDA6.5 在apk执行前动态调试so 的问题
楼主,我试了很久发现以下方法可行: 在输入jdb -connect....之前先输入adb forward tcp:8899 jdwp:<pid> 然后再jdb -connect com.sun.jdi.SocketAttach:port=8600,hostname=127.0.0.1,注意是8600/8700中的8600,就可以成功附加了,你可以试试。进程的pid可以在logcat中找到。 用 forward jdwp:<pid> 端口映射信息来连接指定的JDWP进程.但我不知道为什么是8899端口。 |
|
|
|
[求助]IDA6.5 在apk执行前动态调试so 的问题
可是调试的项目不在Eclipse里啊 没有源码 |
|
|
|
[求助]IDA6.5 在apk执行前动态调试so 的问题
输入jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700出现「致命错误,无法附加到指定VM」这个问题我也遇到了; 我发现: 如果你找到了地址(基址+偏移)然后G到地址,下断点 F9运行, 执行jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700 断下,进行调试, 这样就会出现这个问题,而如果你在第一步不下断点就F9执行,则可以attach上,但是寄存器中的内容是错误的。 至今也不知道为什么别人能成功。。。据说IDA6.6是可以不计算地址直接G到函数名字然后dump的,IDA6.5无能为力。LZ若知道了还请通知一声。 |
|
[求助]360无线攻防第二题第一问
这里面能看出什么。。logcat还好看点。用你那种打桩的方法要注意把.super Landroid/app/Activity改成.super Lcom/qihoo/test/MainActivity,也就是要继承那个作为桩的类;另外还要把xxcheck()函数改成invoke-virtual,而不是invoke-direct。 |
|
[分享]基于xposed的关机窃听的demo
感谢分享! |
|
|
|
[求助]smali跟dex2jar出来的代码对不上
Jeb的Smali跟apktool弄出来的Smali在语法上有些差别, 比如: private void packageNameCheck() { com.example.testfor360.MainActivity mm = new com.example.testfor360.MainActivity(); mm.packageNameCheck(); } 用Jeb反编译出来是这样的: .method private packageNameCheck()V .registers 2 .prologue new-instance v0, MainActivity invoke-direct MainActivity-><init>()V, v0 .local v0, mm:Lcom/example/testfor360/MainActivity; 0000000A invoke-virtual MainActivity->packageNameCheck()V, v0 return-void .end method 而用Apktool反编译出来是这样的: .method private packageNameCheck()V .locals 1 .prologue #代码起始指令 .line 80 new-instance v0, Lcom/example/testfor360/MainActivity; invoke-direct {v0}, Lcom/example/testfor360/MainActivity;-><init>()V .line 81 .local v0, mm:Lcom/example/testfor360/MainActivity; invoke-virtual {v0}, Lcom/example/testfor360/MainActivity;->packageNameCheck()V .line 82 return-void #返回空 .end method 仅仅这一小段看来,有这些区别: 1.Apktool的smali中所有的类都用了完整路径名(L打头),并且以分号结束,包括后面;-><init>的之前,也加了分号;而Jeb只写了类名,并且不带分号 2.方法调用指令invoke-direct中,Apktool把寄存器放到了前面,并且用open brace "{" 和 close brace"}"括起来了;Jeb把寄存器放到了后面,没有大括号 另外,Apktool里的.line xx在Jeb里没有出现。 为了回编译方便,还是常用apktool。。 |
|
[求助]smali跟dex2jar出来的代码对不上
找到了,在InfoFlowData$InfoFlowScore.smali里,不好意思,又发了个没意义的帖子。。 |
|
[原创]360挑战第一题源码
楼主好像没有用到jni吧,是不是把题目理解错了? http://www.kanxue.com/bbs/showthread.php?t=187661&highlight=360+%E7%AC%AC%E4%B8%80+%E4%B8%80%E9%A2%98 |
|
[求助]为什么很多APK文件反编译了打包出错
我刚才遇到了,提示libpng error:Not a PNG file ... public symbol declared here is not defined ... 然后我把这个png文件用画图打开,另存为png,就可以编译了。朋友们可以试试。 |
|
|
|
[求助]用smali中的.line 是否是必须的?
确实啊,发帖太草率了!下不为例。 |
|
[求助]用smali中的.line 是否是必须的?
谢谢 因为改了smali之后运行出错,没有错误提示又检查不出来,只好怀疑这个。。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值