比特币:一种点对点的电子现金系统

比特币:一种点对点的电子现金系统

[摘要]:本文提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。虽然数字签名(Digital signatures)部分解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付(double-spending)的话,那么这种系统也就失去了存在的价值。我们(we)在此提出一种解决方案,使现金系统在点对点的环境下运行,并防止双重支付问题。该网络通过随机散列(hashing)对全部交易加上时间戳(timestamps),将它们合并入一个不断延伸的基于随机散列的工作量证明(proof-of-work)的链条作为交易记录,除非重新完成全部的工作量证明,形成的交易记录将不可更改。最长的链条不仅将作为被观察到的事件序列(sequence)的证明,而且被看做是来自CPU计算能力最大的池(pool)。只要大多数的CPU计算能力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成最长的、超过攻击者的链条。这个系统本身需要的基础设施非常少。信息尽最大努力在全网传播即可,节点(nodes)可以随时离开和重新加入网络,并将最长的工作量证明链条作为在该节点离线期间发生的交易的证明。

继续阅读“比特币:一种点对点的电子现金系统”

ADB配置提权漏洞(CVE-2017-13212)原理与利用分析

本文首发于 FreeBuf,转载请注明来源http://www.freebuf.com/articles/terminal/161843.html

0×01 背景

adb由于拥有shell权限,因此仅在授权PC端后才可使用shell权限,而通过该漏洞,可以实现在移动端获取shell权限,以致于可随意删除应用、屏幕截图等等高权限操作。不过移动端恶意应用程序必须能够连接到adbd正在监听的TCP端口,这就需要应用程序在它的AndroidMainifest.xml中定义INTERNET权限。

而漏洞作者所用的攻击方法是构造一个覆盖窗口,劫持用户点击,也就是经典的hijack攻击。Google也据此修复了此种攻击方式。

但是,我经过尝试后发现,除了以上构造hijack攻击窗口外,还可以劫持USB广播,然后在用户进行正常的连接电脑操作时,劫持授权界面,使用户误导从而进行授权。也即造成新的劫持授权漏洞方案。

继续阅读“ADB配置提权漏洞(CVE-2017-13212)原理与利用分析”

Android Assets打开调用过程源码分析

一、Android读取Assets中图片并显示

private Bitmap getImageFromAssetsFile(String fileName)
{
    Bitmap image = null;
    AssetManager am = getResources().getAssets();
    if (am == null)
    {
        return null;
    }
    try
    {
        InputStream is = am.open(fileName);
        image = BitmapFactory.decodeStream(is);
        is.close();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    return image;
}
首先是获取AssetManager,然后调用其函数open,打开对应的资源文件

二、open函数追朔(Java层)

继续阅读“Android Assets打开调用过程源码分析”

Android逆向学习汇总篇

Android

入门基础知识

《Android逆向系列之基础-入门篇》
《Android逆向系列之基础-工具篇》
《Android逆向系列之基础-Smali语法篇》
《Android逆向系列之基础-ARM概述篇》
《Android逆向系列之基础-ARM语法篇》
《Android逆向系列之基础-Dex文件结构解析》
《Android逆向系列之基础-AndroidManifest文件结构解析》
《Android逆向系列之基础-ELF文件结构解析》
《Android逆向系列之基础-Resource.arsc文件结构解析》

<!–more–>

静态分析

《Android逆向系列之静态分析(零)–入门篇》
《Android逆向系列之静态分析(一)–Jeb》
《Android逆向系列之静态分析(二)–JAVA层》
《Android逆向系列之静态分析(三)–IDA》
《Android逆向系列之静态分析(四)–Native层》

动态调试

《Android逆向系列之动态调试(零)–入门篇》
《Android逆向系列之动态调试(一)–Smali注入》
《Android逆向系列之动态调试(二)–Eclipse调试apk》
《Android逆向系列之动态调试(三)–IDA调试dex》
《Android逆向系列之动态调试(四)–代码注入(JDB调试)》
《Android逆向系列之动态调试(五)–gdb调试》
《Android逆向系列之动态调试(六)–IDA调试so文件》
《Android逆向系列之动态调试(七)–IDA调试so文件(下)》

Hook

《Android逆向系列之Hook(一)-基础篇》
《Android逆向系列之Hook(二)-Java层Hook原理》
《Android逆向系列之Hook(三)-Native层Hook原理》
《Android逆向系列之Hook(四)-Xposed入门篇》
《Android逆向系列之Hook(五)-Xposed原理解析》
《Android逆向系列之Hook(六)-Frida入门篇》
《Android逆向系列之Hook(七)-Frida原理解析》
《Android逆向系列之Hook(八)-Hook框架总结篇》

注入

《Android逆向系列之注入(一)-基础篇》
《Android逆向系列之注入(二)-进程注入原理分析》
《Android逆向系列之注入(三)-代码注入原理分析》
《Android逆向系列之注入(四)-注入框架总结篇》

加固

《Android逆向系列之加固篇(一)-加固壳基础篇》
《Android逆向系列之加固篇(一)-Java层加固》
《Android逆向系列之加固篇(一)-Natvie层加固》

脱壳

《Android逆向系列之脱壳篇(一)–一代壳方法总结》
《Android逆向系列之脱壳篇(二)–二代壳方法总结》
《Android逆向系列之脱壳篇(三)–三代壳方法探索》
《Android逆向系列之脱壳篇(四)–四代壳方法探索》

混淆

《Android逆向系列之混淆-方法总结》
《Android逆向系列之反混淆-方法总结》

工具分析

《Apktool源码分析》

自研小工具

《Android逆向小工具-ida_auto_dydebug》
《Android逆向小工具–am_auto_start》
《Android逆向小工具–Dex2Java》
《Android逆向小工具–apkCheckProtect》

持续更新,欢迎持续关注订阅!
本文属于原创,转载请注明来自tasfa.cn ,如有问题请联系 root#tasfa.cn

Android中的文件打开读写调用过程

1、简述

一般的Android 在Java层对文件的读写调用主要有以下两个类:

(1)FileInputStream/FileOutputStream(FileReader/FileWriter)
(2)RandomFileAccess

FileInputSteam和FileOutputStream继承于InputStream和OutputStream,FileReader、FileWriter继承于Reader和Writer,它们的底层实现原理实现是一样的,区别在于前者用于字节型数据流读写,后者用于unicode文本流读写。

RandomFileAccess是一个独立的文件读写类,它与InputStream、OutputStream不同之处在于它更倾向与随机文件读写,类似C语言fopen、fread、fseek、fwrite、fflush、fclose的封装。

下面简要的分析三个操作的整个调用过程。

2、文件打开

一般在Java层调用如下:

File myFile = new File(“/data/local/tmp/test.java”);

FileOutputStream fos = new FileOutputStream(myFile);

首先我们找到File.java

继续阅读“Android中的文件打开读写调用过程”

Android逆向小工具-ida_auto_dydebug

dex2java3

一、工具产生的背景

每次动态调试,会敲各种各样的命令,而经常的debuger就会知道,调试过程很容易崩溃,然后又得重头来一遍,各种无意义的操作

因此这个工具,就是为了减少一些重复性,无意义的工作

由于没什么空,临时写的,所以v1,代码比较混乱,结构性,稳定性也相对较差,等有时间会继续开发

github星给的多,我就加紧熬夜!继续开发!!!

二、使用:

使用也相对简单,目前仅支持window平台,直接运行dydebug.bat文件即可。

说出来你可能不信,这种渣东西 都敢放出来

欢迎给想法、提bug

工具地址 : 继续阅读“Android逆向小工具-ida_auto_dydebug”