Android 获取进程的 backtrace 信息
☆ 使用kill 发送 SIGNAL_QUIT这种方法只能用于zygote 的子进程 (比如所有的 app 进程, 都是由zygote fork 而来). 1234567891011121314151617181920212223242526272829303132333435363738# kill -3 pid# cat /data/anr/traces.txt...suspend all histogram: Sum: 290us 99% C.I. 2us-40us Avg: 14.500us Max: 40usDALVIK THREADS (12):"Signal Catcher" daemon prio=5 tid=2 Runnable | group="system" sCount=0 dsCount=0 obj=0x32c070a0 self=0xaecca000 | sysTid=1918 nice=0 cgrp=bg_non_interactive sched=0/0 handle=0xb4406930 | sta...
关于定投的一些思考
定投只有在低估的时候买,当估值进入中位数以上就不要买了,同时定投标的的估值应该在历史底部区域。 定投的本质不是价值投资,而是相信估值回归中位数。 指数基金,周期性行业适合定投,比如券商,钢铁,煤炭。一般按时间定投,如果大幅下跌也要买。 总的来说定投属于策略型的投资方法,其实并不知道底和顶在哪里,通过拉长时间来降低持仓成本,因此定投成功的关键在于你的成本是否可以随着时间而降下来。从这点也可以分析出在底部区域定投比在顶部区域定投要好得多,这也就是第一条。 定投策略对历史的估值情况有很强的依赖,属于基于历史数据的统计分析,但是每一次的情况都不同,没有人可以保证历史一定会重演。定投也不是价值投资,没有护城河,只是相信均值回归,这是第二条。 巴菲特非常推荐标普500指数 (S&P 500) 定投,指数基金最牛的地方是股票会定期调整,把好的股票加入进来,差的淘汰出去,相当于有人帮你选股了,另外足够分散,发生系统性风险的概率大幅降低。周期性行业则是爆发性很强,三年不开张,开张吃三年,容易在底部积累大量筹码,作为一个长期投资策略非常合适。
AS3 Sorcerer 3.0 破解思路
AS3 Sorcerer是一款flash action Script的商业反编译软件。 www.as3sorcerer.com 软件为Delphi编写,加了未知壳,使用PEID 0.94无法正确查出,使用核心扫描发现是 Delphi编写,这个软件有一个特点修改一个字节就报错。由于时间原因没有具体跟相关代码。 破解方法使用LPK.dll动态修改as3.exe内存达到破解目前,在Windows Xp下比较完美, 在Windows 7下已经无法通过LPK.dll进行DLL hijack,可以通过DLL注入达到同样的目的。 难点有几个,OD加载报错,attack也报错。使用海风月影的StrongOD可以正常attach。 OD 1.1目前最大的问题是插件冲突严重,安装了OllyAdv后,无法成功加载as3.exe. 遇上强壳时可以使用phantom的protect DRx,可以解决一下问题,总之要尽量避免冲突。 接下来的难点就是如何找到破解的关键点,进行内存patch。 使用OD查找字符串参考Unicode,搜索trial 123450...
使用Android Studio 调试无源码apk程序
Apk无源码调试的方法有很多,现在发现使用Android Studio 结合 JEB 感觉良好,主要是参考 http://www.jianshu.com/p/c7899e5ea182 这篇记录下了具体步骤。 1. 下载 smalideahttps://bitbucket.org/JesusFreke/smali/downloads/smalidea-0.03.zip 在Android studio的插件仓库中没有找到这个插件,需要下载本地安装File -> Settings -> Plugins -> Install plugin from disk 选择下载的插件,重启后生效。 2. apktool 输出源码文件https://github.com/iBotPeaches/Apktool/releases/download/2.2.0/apktool_2.2.0.jar 1java -jar apktool_2.2.0.jar d -f xx.apk -o xx 如果正常的将输出 smali 源码文件 3. Android Studio 导入源码File ...
一些反沙盒的新技术
Upatre 使用了一些新的逃逸技术来逃逸动态沙盒引擎的检查,这些技巧都非常的简单,但是非常的有效果。事实上,VirusTotal上Upatre的检出率并不高,新变种出来基本都检测不出来,说明现在的恶意软件对付杀毒软件是越来越有办法了。 目前在恶意软件上加壳倒是越来越少了,因为加壳容易引起杀软引擎的注意,相反地目前的恶意软件大量使用边执行边修改自身代码的方法来躲避杀软,不执行的话看起来就像是一个正常的软件,而真正执行起来代码却全变了,这也算是一种进化。 下面说说两种最近遇到的沙盒逃逸的办法,样本md5: ac3558b973402ef6a27e03c391f20533 检查开机时间一般使用沙盒的分析引擎的做法都是安装一个全新的系统,做系统镜像。然后在检查的时候加载镜像,执行样本。而开机的时间往往都被忽略了,基本都不会超过10分钟。 Upatre 样本所采取的方法是利用GetTickCount 获取开机的毫秒数,当开机时间小于12分钟是就不执行恶意的行为。 12345678004013B3 BB D8FE0A00 MOV EBX,0AFED8004013B8 ...
Andorid 绕过 SSL Pinning 抓 https 报文
SSL pinningSSL Pinning是一种防止中间人攻击的技术,主要机制是在客户端发起请求–>收到服务器发来的证书进行校验,如果收到的证书不被客户端信任,就直接断开连接不继续请求。可以发现中间人攻击的要点是伪造了一个假的服务端证书给了客户端,客户端误以为真。解决思路就是,客户端也预置一份服务端的证书,比较一下就知道真假了。 SSL-pinning有两种方式:证书锁定(Certificate Pinning) 和公钥锁定( Public Key Pinning)。 证书锁定需要在客户端代码内置仅接受指定域名的证书,而不接受操作系统或浏览器内置的CA根证书对应的任何证书,通过这种授权方式,保障了APP与服务端通信的唯一性和安全性,因此客户端与服务端(例如API网关)之间的通信是可以保证绝对安全。但是CA签发证书都存在有效期问题,缺点是在证书续期后需要将证书重新内置到APP中。 公钥锁定提取证书中的公钥并内置到客户端中,通过与服务器对比公钥值来验证连接的正确性。制作证书密钥时,公钥在证书的续期前后都可以保持不变(即密钥对不变),所以可以避免证书有效期问题,一般推荐这种做法...
Intent Spoofing 攻击
0. Android的安全模型 application sandbox selinux permissions application signing 正是因为Application sandbox的存在,App进程之间是相互隔离的。有下面一个场景一个App需要调用weixin来分享内容,如何处理?这就需要用到intent,告诉Android系统你的意图是什么,Android系统将调用相应的处理程序来处理。 Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯。比如说调用startActivity()来启动一个activity,或者由broadcaseIntent()来传递给所有感兴趣的BroadcaseReceiver, 再或者由startService()/bindservice()来启动一个后台的service.所以可以看出来,intent主要是用来启动其他的activity 或者service,所以可以将intent理解成activity之间的粘合剂。 1. IntentIntent...
Android Binder Fuzzing 的一些思路
1. binder 简介Android安全模型的一个关键部分是每一个应用程序都被赋予一个唯一的 Linux 用户 ID 和组 ID,运行在自己的进程和 Dalvik 虚拟机里。在应用程序安装的过程中,Android系统设备上创建一个专门的目录(文件夹),用于存储此应用程序的数据,并且仅允许应用程序利用Linux 用户 ID 和组 ID 的相应访问权限对这些数据进行访问。此外,此应用程序的 Dalvik 虚拟机使用应用程序的用户 ID 运行在自己的进程中。这些关键的机制在操作系统层面上强制数据安全,因为应用程序之间不共享内存、访问权限及磁盘存储。应用程序只能在它们自己的 Dalvik 虚拟机范围内访问内存和数据。 1234567891011121314151617$ ps...u0_a16 2757 882 2574956 116944 SyS_epoll+ 0 S com.google.android.gms.persistentu0_a128 2774 883 1939084 87720 SyS_epoll+ ...
afl-fuzz 框架
afl-fuzz 的整体架构,新手理解起来还是比较费劲,网络上发现一张图觉得不错,放上来大家看看,感谢原作者。
Dissecting American Fuzzy Lop A FuzzBench Evaluation 要点
paper: https://www.s3.eurecom.fr/docs/fuzzing22_fioraldi_report.pdf 两个实验的结论 (主要基于 FuzzBench) Our conclusion after this experiment is that AFL, and follow-ups fuzzers like AFL++, should provide an optionto disable hitcounts. AFL++ provides many different op-tions, and the users are suggested to run an instance of each variant when doing parallel fuzzing, a common use-case in real-world setups. The fact that in our experiments,hitcounts have shown a highly variadic behavior suggests that users ...