duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
Forwarded from duangsuse::Echo
(话说这玩意好像能自动去验证… 妈耶等会测试下😂
Forwarded from duangsuse::Echo
唯一的区别是这是 libcore.so 里的逻辑,不是托管于 JVM 上的代码
Forwarded from duangsuse::Echo
https://www.cnblogs.com/sunzn/archive/2013/01/27/2878422.html

Android 编程下获得应用程序的签名
Forwarded from duangsuse::Echo
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from duangsuse::Echo
当然是 JNI 的可是我不会 JNI 233333....
Forwarded from duangsuse::Echo
(之前好像对 radare2 没啥印象
Forwarded from duangsuse::Echo
0xf7f8d3a0 libcore.so!_JNIEnv::CallObjectMethod(_jobject*, _jmethodID*, ...)@plt
0xf7f8d3f0 libcore.so!_JNIEnv::CallCharMethod(_jobject*, _jmethodID*, ...)@plt
0xf7f8d420 libcore.so!__android_log_print@plt
0xf7f8d380 libcore.so!_JNIEnv::CallStaticObjectMethod(_jclass*, _jmethodID*, ...)@plt
0xf7f8d390 libcore.so!_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)@plt
0xf7f8d3e0 libcore.so!toMd5@plt
0xf7f8dcf0 libcore.so!byteToHexStr
0xf7f8dd70 libcore.so!toMd5
Forwarded from duangsuse::Echo
(其实也不是全部逻辑都是 JNI 调用 Java API)
Forwarded from duangsuse::Echo
如你们所见 好像是 MD5 对比校验
这不是直接用 Java MessageDigest API 的
我去看看 Android NDK
Forwarded from duangsuse::Echo
(不过废话那么多干什么,这基本可以猜出来了)
(何况猜不出来也没关系,虽然这次我是为了看调戏破解的消息来的,drakeet 也说了那部分是托管代码
(尝试一下,如果 com.drakeet.purewriter.Ww.ww) 这个 Java 方法校验失败返回 true drakeet 会讽刺一下破解者,反之他不知道这是破解版
, 直接修改托管于 JVM(准确的说不是 JVM.... 不是重点, 因为编译为 JVM 字节码的语言太多) 上的逻辑即可规避反破解逻辑
Forwarded from duangsuse::Echo
(另外根据代码搜索我只找到了 com.drakeet.purewriter.Ww.www 这个 native 方法使用 libcore.so

其实看了看符号表/字符串资源,这个 libcore.so 的功能似乎只包括反破解,没有其他功能了
(排除数目最多 C++ 异常处理的符号,就只剩 toMd5 啊, strcmp 啊, loadSignature 这些明显与校验签名有关的)
Forwarded from duangsuse::Echo
(这是 drakeet 的说法)
Forwarded from duangsuse::Echo
所以我当然是来解密鄙视文案的
Forwarded from duangsuse::Echo
那么问题来了:
看看 libcore.so 符号表没有什么与解密相关的东西
所以如果解密经手 Java API 的话,分析反而会更简单(至少是在我这里)
AndBug 给 Java 密码工具类打断点就行了....
Forwarded from duangsuse::Echo
也说不定,或许 @drakeet 自己研发了一套新的加密算法叫 PureCrypto 包含在了 libcore.so😂
( 还是继续看吧
Forwarded from duangsuse::Echo
毕竟不知道 drakeet 真的那样做(藏鄙视文档)了没有
暂先把目标定为破解签名验证
Forwarded from duangsuse::Echo
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from duangsuse::Echo
我拿到了可以运行纯纯写作、能 ADB 调试的设备
Forwarded from duangsuse::Echo
libcore.so 里值得一看的几个函数:

0xf7ee8740: Java_com_drakeet_purewriter_Ww_www
0xf7ee8350: checkSignature
0xf7ee80c0: loadSignature
0xf7ee7d70: toMd5


另外:
0xf7ee85e0: Java_com_drakeet_rebase_tool_JPEGs_getRemoteUrl
0xf7ee84d0: Java_com_drakeet_rebase_tool_JPEGs_getLocalUrl
0xf7ee8430: JNI_OnLoad
0xf7ee8260: charAt
0xf7ee7cf0: byteToHexStr
Forwarded from duangsuse::Echo
dse@susepc:~/reveng/pw$ andbug shell --pid com.drakeet.purewriter --src smali -d BY2YYB154J084241
!! [Errno 104] Connection reset by peer

dse@susepc:~/reveng/pw$ andbug shell --pid f.oo --src smali -d BY2YYB154J084241

## AndBug (C) 2011 Scott W. Dunlop <[email protected]>
>>


估计要先加调试 Flag 才让连 JDWP(