自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (4)
  • 收藏
  • 关注

原创 python学习心得(6)— Mac os安装wxPython3.0

目的目前wxPython版本已经到了4.0,但是之前所写的code都是基于3.0。为了能够快速运行起项目代码,暂时希望安装3.0版本。下载dmghttp://download.csdn.net/download/qiyu93422/10201995问题Cannot install wxPython on Mac OSX 10.11 El Capitan: no so

2018-01-12 10:51:12 1156 1

原创 Android学习心得(25) --- Intent启动方式研究

Activity Flagintent.addFlags(Intent.XXX)FLAG_ACTIVITY_NEW_TASK singleTaskFLAG_ACTIVITY_SINGLE_TOP singleTopFLAG_ACTIVITY_CLEAR_TOP 在此之上的所有的都要出栈FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 拥有这个标记的Activity

2017-07-20 16:51:07 566

原创 Android NDK系列(6) — 动态注册native方法

我在博客上发表一些我的NDK学习心得,希望对大家能有帮助。 这一篇我们讲述如何动态注册native方法介绍首先,之前写的文章中通过一个简单的例子来使用了一下NDK,实现了从Native中调用Java方法。下面,我们要介绍的是实现动态绑定native方法来破除命名限制。问题在静态注册的情况,所有的方法都是有固定的方法名:Java_<包名> <类名> <方法名>,这种情况下,调用一个方法比较繁琐,同时也

2017-07-05 19:08:38 1327

原创 Android学习心得(24) --- Android Handler消息机制源码分析

Android Handler消息机制源码分析相关类LooperMessageQueueMessageHandler基础知识1. ThreadLocal2. epoll3. pipe4. idleHandler使用过程使用方法: 1、Looper.prepare() 2、创建Handler实例,重写handleMessage处理函数 3、Looper.loop() 4、调用相关的发

2017-06-05 18:51:45 386

原创 python学习心得(5)— Python插件化开发

前言这年头,仅仅是硬编码的方式已经满足不了项目逇可拓展性,为了实现拓展的功能,考虑使用插件化加载功能来实现参考本文中的方法是import实现 以及参考开源python漏洞扫描器中的实现 https://github.com/Lcys/lcyscan 该扫描器通过加载不同的扫描模块,然后开启线程来实现实现废话少说,直接上代码项目结构如下图: 定义了一个Plugins包,中间包含了两个插件P

2017-05-23 22:14:53 3548 1

原创 Android学习心得(23) --- Android序列化使用

序列化操作:将数据结构或者对象转换成可用于存储或者传输的数据格式的过程序列化 < ——– > 反序列化Serializable基于JDK接口,基于磁盘或者网络序列化操作: 1、创建某种类型OutputStream 2、封装该输出流到一个ObjectOutputStream中(基于字节) 3、调用ObjectOutputStream.writeObject进行序列化 反序列化操作

2017-05-16 15:57:31 376

原创 python学习心得(4)— 并发小米应用商城APK爬取

前言上一节中python学习心得(3)— 小米应用商店APK爬取介绍了如何进行爬取APK 对应源码为 https://github.com/QyMars/APKSpider/blob/master/XiaomiCrawler.py 并发单线程的进行下载,效率太低,为了实现并发,使用了Python中的Celery异步任务队列来实现并发源代码Github:https://github.com/Qy

2017-05-14 14:44:43 2258

原创 python学习心得(3)— 小米应用商店APK爬取

原因为了对大量Android样本进行分析,我们需要从不同的应用市场中对应用进行爬取 目标使用Python实现对于小米商城中的APK进行爬取,实现自动化爬取功能。 过程解析对应网页元素,获取APK链接 获取每一个APK链接中下载链接对下载链接进行访问,将返回数据保存到本地找到是否有下一页的元素,从来获取下一页页面地址,重复上述操作访问下一页的操作十分必要,这样才能够实现整个系统的自动化

2017-05-14 10:19:05 4238 2

原创 Android插件学习汇总(持续更新)

Android插件学习Android插件好处实现热更新操作业务热拔插提高启动速度基本实现使用一个宿主APK,即空壳程序,通过动态加载功能跟实现插件包调用,从而实现动态更新的功能。开篇对于这一个块的内容学习,我也是刚刚接触,希望从我一步一步学习下去,由浅入深,更好的理解这个动态加载过程,最终目标能够实现一个相对比较完备的插件框架。 å基础知识DexClassLoader可以实现对于Dex、j

2017-04-19 16:55:18 734

原创 Android NDK系列(5) — SO中获取Java对象的属性

我在博客上发表一些我的NDK学习心得,希望对大家能有帮助。 这一篇我们讲述如何在so中获取到Java对象属性介绍首先,之前写的文章中通过一个简单的例子从从Native中调用Java方法。下面,我们要介绍的是如何在Native层中获取到Java对象属性问题首先,从Native层要操作Java对象的属性有两种方法:直接操作 间接操作 来解释一下什么叫直接操作,即在Native层中直接获取到对象的属性

2016-12-14 16:02:37 1434

原创 Android NDK系列(4) — SO中调用Java方法

我在博客上发表一些我的NDK学习心得,希望对大家能有帮助。 这一篇我们讲述如何在so中调用java层的函数介绍首先,之前写的文章中通过一个简单的例子来使用了一下NDK,编写了调用so中方法,返回一个字符串的功能,该方法是从Java层调用Native方法。下面,我们要介绍的是如何从Native中调用Java方法。问题废话不多说,直接开始。 首先,Java方法简单可以分为两种,静态方法和非静态方法

2016-12-09 00:00:07 4334

原创 Android学习心得(22) --- PackageManagerService源码解析platfrom.xml

新博客地址blog.marssecure.complatform.xmlAndroid中沿用Linux用户和组的来限制系统资源的访问,查看从Android真机pull出/etc/permissions/platform.xml 权限初始化PackageManagerService构造函数会解析platform.xml,建立android权限和gid的对应关系。然后,扫描apk时,会由请求的权限找到

2016-10-17 22:21:35 1238

原创 Android学习心得(21) --- apk签名源码解析

新博客地址blog.marssecure.com重打包检测对于apk重打包检测中,验证签名是一种很简单、很快捷的方法,为了更好理解签名,这一章主要讲解apk中签名文件内容签名:每一个apk发布之前都需要进行签名,不然不能进行安装,我们使用winrar来查看一个apk包 我们可以看到其目录结构,关注一下META-INF这个文件,里面包含三个文件 下面我们来解压缩,打开看看里面内容 源码位

2016-09-29 10:58:10 1053

原创 python学习心得(2) --- xml解析

xml.etree.ElementTree导入头文件:import xml.etree.ElementTree as ET文件读取:tree = ET.parse('country_data.xml')root = tree.getroot()文本读取:(其中文本读取后已经获取的是根节点)root = ET.fromstring(country_data_as_string)Element Obj

2016-09-24 09:46:29 568

原创 Android学习心得(20) --- Hook技术( 1 )

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下Hook技术Hook动态注入技术由来已久,通过Hook,我们可以改变变量或者方法的执行。在Android上进行Hook,需要跨进程操作,所以需要Root权限。对于Android平台的Hook,有两大类,一类是:Java层的Hook,另一个类是:Native层Hook常见的工具1、Cydia Substrate

2016-08-22 19:13:21 957

原创 Android NDK系列(3) --- ARM寄存器

寄存器ARM有17个寄存器,分别从R0 ~ R15、CPSR 其中有几个寄存器比较特殊,下面着重介绍一下:R11 帧指针fpR12 暂存spR13 栈寄存器 sp堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式、非异常模式(用户模式和系统模式),都有各自独立的堆栈,用不同的堆栈指针来索引。这样当ARM进入异常模式的时候,程序就可以把

2016-08-10 15:03:21 1255

原创 Android NDK系列(2) --- 简单so例子动态分析

SO调试步骤对于在程序一开始就加载使用的so调试方法,需要在加载的时候下断点才能对该so进行调试: + 开启IDA调试服务器./android_server + adb forward tcp:23946 tcp:23946 + am start -D -n 包名/类名;(可以在开发者选项中选择调试程序) + 启动IDA主程序,点击菜单 Debugger->Attach->Remo

2016-08-08 11:45:00 689 5

原创 Android NDK系列(1) --- 配置及简单使用

我在博客上发表一些我的NDK学习心得,希望对大家能有帮助。 这一篇我们讲述NDK配置和简单使用1、介绍先下载相应ndk版本 下载连接(需要翻墙):https://developer.android.com/ndk/downloads/index.html解压之后目录如下: 其中ndk-build是我们用来编译c或者c++的。 当然,也需要把该目录加入到环境变量中。2、配置在Ecli

2016-07-20 20:05:29 779

原创 python学习心得(1) --- 大型文件的读取

我在博客上发表一些我的Python学习心得,希望对大家能有帮助。 这一篇我们讲述大型文件python如何去读取。1、文件读取当我们使用open函数取得一个文件对象之后,对这个文件的所有操作都是通过这个句柄来实现的。 读取文件的操作有三个:read() 直接去读字节到字符串中,可以指定size来读取readline() 读取打开文件的一行readlines() 读取所有的行,然后返回一个字

2016-07-19 10:31:01 805

原创 Android学习心得(19) --- short、byte、Hex、int、ULeb128类型转化Java源码

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下在分析dex时候遇到类型转换,并附上java源码1、介绍由于读取dex文件放入的是一个byte数组,当我们对这个byte数组进行解析的时候,肯定会遇到一些类型转化的问题,下面就通过java源代码来解释一下这些类型转换 。2、byte2intbyte[4]数组转化为int类型:// 字节转换为十进制 pu

2016-07-04 12:29:32 2810

原创 Android学习心得(18) --- 对APK包动态写入信息

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下在APK包的comment中动态写入信息。1、介绍APK包的压缩方式是zip,所有和zip有着相同的文件结构,zip文件主要由三部分组成:压缩的文件内容源数据、压缩的目录源数据、目录结束标识结构。 目录结束标识结构存在在整个归档包的结尾,用来标记压缩的目录数据的结束,其结构如下: 我们可以在注释中添加一

2016-06-07 22:17:19 3285

原创 Android学习心得(17) --- 二进制AndroidManifest解析

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下打包过后的AndroidManifest二进制文件。二进制AXML:对于aapt打包后的APK中,我们没有反编译,直接对AndroidManifest文件进行查看的话看到的会是如下图所示看到的是一堆乱码,并不是我们想要看的,因为这个直接从APK中取出的文件是二进制文件我们可以使用AXMLPrinter工具

2016-03-22 18:15:24 2960 1

原创 批量反编译和重新编译签名 Python脚本(附源代码)

好久没有来写博客了,最近在学python,正好写了一个python脚本实现apktool批量使用源代码下载 : https://github.com/QyMars/apktool-python项目描述:首先把需要批量进行的apk放入apk文件夹中我已经把需要的工具都放在这个目录中,你所需要的是下载下来后在目录中创建三个文件夹 out unsigned signedout:存放反编译后文件夹un

2016-01-14 16:31:18 2198

原创 Android学习心得(16) --- Dex文件结构实例解析(2)

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下通过一个实例来分析dex文件结构和组成。参考Leb128数据类型 Android学习心得(5) --- dex数据类型LEB128 参考实例分析学习理解dex文件结构Android学习心得(15) --- Dex文件结构解析(1) 参考baksmali工具使用Android学习心得(4) --- MAC下s

2015-08-31 12:28:11 2208 1

原创 Android学习心得(15) --- Dex文件结构解析(1)

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下Android可执行文件dex的结构解析。参考Leb128数据类型 Android学习心得(5) --- dex数据类型LEB128 参考实例分析学习理解dex文件结构Android学习心得(15) --- Dex文件结构解析(1)1、Dex背景 Android应用开发和Dalvik虚拟机Android

2015-08-27 21:41:47 4881

原创 Android学习心得(14) --- Android代码混淆(2)

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下Android混淆如何自定义proguard参数来实现环境配置参考 Android学习心得(1) --- MAC下Android环境的搭建 签名参考Android学习心得(12) --- APK签名keystore 代码混淆Android学习心得(13) --- Android代码混淆(1) dex2j

2015-08-18 18:38:14 1208

原创 Android学习心得(13) --- Android代码混淆(1)

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下最新的ADT环境下如何进行Android混淆在新版本的ADT创建项目时,混码的文件不再是proguard.cfg, 而是project.properties和proguard-project.txt。 我们把之前配置都配置好了,proguard已经在包含在sdk中了。环境配置参考 Android学习心得(

2015-08-16 22:37:42 1014 1

原创 Android学习心得(12) --- APK签名keystore

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下Eclipse如何生成keystore并为apk签名所有的APK必须通过签名才能进行安装,我们在Eclipse中安装的APK 过程是Eclipse先进行打包成APK文件,使用默认的keystore文件进行签名 perferences -> Android -> Build我们可以看到默认的keystor

2015-08-16 16:24:09 1352

原创 Android学习心得(11) --- MAC下Android反编译(3)

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 在前一章我们学习了反编译。 这一章再次学习一下两个demo。两个demo下载地址 KeygenMe#1.apk crackme0a.apk 链接: http://pan.baidu.com/s/1kTs11Tt 密码: davkKeygenMe#1.apk1、首先在模拟器安装测试 由于模拟器检测不到wifi mac

2015-08-08 09:49:10 851

原创 Android学习心得(10) --- MAC下Android反编译(2)

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。在前一章我们学习了基本的ndk-build脚本参数用法。这一章再次学习一下反编译。 1、简介这次分析的是一个很简单的程序,算是反编译入门的一个入门教程 主要学习一下工具的使用测试样本EX_05_01_.apk 链接: http://pan.baidu.com/s/1sjOIXJn 密码: 5uq42、首先,使用dex2ja

2015-08-04 10:07:41 1666 3

原创 Android学习心得(9) --- ndk-build脚本参数用法

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。在前一章我们学习了如何学习基本的dex2jar和jd-gui使用。这一章学习基本的ndk-build脚本参数用法。 编译具体参数使用:ndk-build : 编译ndk-build -C <project路径> : 先cd进入<project路径>,然后执行ndk-build。ndk-build -B : 在构建系统的时候不

2015-07-29 14:56:26 1586

原创 Hill密码加密解密java代码

本篇文章,我要通过java代码实现Hill加密解密。在上一篇,我们通过java代码实现了逆矩阵,这个是实现Hill密码的前提首先我们实现加密,然后再通过加密的密文来进行解密过程。1、Hill加密我们将明文"paymoremoney"通过加密密钥K进行Hill加密 |17 17 5 |K=|21 18 21| |2 2 19|每三个字母进行转换,依次转换结束。private s

2015-07-18 14:26:13 6261 5

原创 逆矩阵实现java代码

为了实现Hill密码,我们必须先实现如何求逆矩阵。A的逆矩阵公式为 A*/|A|,我们需要分别求出A*、|A|。 为了求出我们的伴随矩阵,我们要实现几个步骤的方法: 1、实现求出(h,v)相应坐标下的余子式 2、实现求出一个矩阵的值 3、实现通过求代数余子式并转置来实现求逆矩阵1、实现求出(h,v)相应坐标下的余子式/* * 求(h,v)坐标的位置的余子

2015-07-17 01:56:57 10787 5

原创 playfair密码java实现

这次,使用java来模拟现实playfair密码加密解密过程

2015-07-14 22:43:52 2298 2

原创 Mac中Git的简单实用(8) --- 标签使用

今天我来介绍下Git,Git是一款免费、开源的分布式版本控制系统。我们在上一个学习了Git的Fast-forward模式、保存恢复现场 、测试的feature分支。这一章,我们要学习Git的远程库的信息、推送分支、。Mac中Git的简单实用(1) — Git基本命令(1) Mac中Git的简单实用(2) — Git基本命令(2) Mac中Git的简单实用(3) — Github远程仓库

2015-06-25 23:48:57 1208

原创 Mac中Git的简单实用(7) --- 多人协作使用

今天我来介绍下Git,Git是一款免费、开源的分布式版本控制系统。我们在上一个学习了Git的Fast-forward模式、保存恢复现场 、测试的feature分支。这一章,我们要学习Git的远程库的信息、推送分支、。Mac中Git的简单实用(1) — Git基本命令(1) Mac中Git的简单实用(2) — Git基本命令(2) Mac中Git的简单实用(3) — Github远程仓库

2015-06-21 21:53:58 1795

原创 Mac中Git的简单实用(6) --- 分支管理策略

今天我来介绍下Git,Git是一款免费、开源的分布式版本控制系统。我们在上一个学习了Git分支冲突管理。这一章,我们要学习Git的Fast-forward模式、保存恢复现场 、测试的feature分支。Mac中Git的简单实用(1) — Git基本命令(1) Mac中Git的简单实用(2) — Git基本命令(2) Mac中Git的简单实用(3) — Github远程仓库 Mac中Gi

2015-06-19 20:18:33 2291

原创 Android学习心得(8) --- MAC下dex2jar和jd-gui使用

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。在前一章我们学习了如何进行迭代器Iterator反编译smali分析,这一章学习基本的dex2jar和jd-gui使用。阅读反编译的smali代码是一件特别繁琐的事情,我们可以使用JAVA反编译工具。1、使用dex2jar生成jar文件首先我们先去下载dex2jar工具,这里给出下载链接http://sourceforge.n

2015-06-19 10:28:27 6003 3

原创 Mac中Git的简单实用(5) --- Git分支冲突管理

今天我来介绍下Git,Git是一款免费、开源的分布式版本控制系统。我们在上一个学习了Git添加和合并分支管理。这一章,我们要学习Git分支冲突管理。Mac中Git的简单实用(1) — Git基本命令(1) Mac中Git的简单实用(2) — Git基本命令(2) Mac中Git的简单实用(3) — Github远程仓库 Mac中Git的简单实用(4) — 分支branch管理我们通过不同

2015-06-17 16:12:22 2937

原创 Mac中Git的简单实用(4) --- 分支branch管理

今天我来介绍下Git,Git是一款免费、开源的分布式版本控制系统。我们在上一个实现远程仓库。这一章,我们要学习Git分支管理。Mac中Git的简单实用(1) — Git基本命令(1) Mac中Git的简单实用(2) — Git基本命令(2) Mac中Git的简单实用(3) — Github远程仓库1、分支介绍每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。我们通过bran

2015-06-16 19:46:06 6737

wxPython3.0-osx-3.0.2.0-cocoa-py2.7.dmg

http://blog.csdn.net/qiyu93422/article/details/79041579

2018-01-12

线性回归做房价预测 python源码

线性回归做房价预测 python源码

2016-03-16

jd-gui for mac

mac版本的jd-gui,可以查看通过dex2jar反编译的java代码,图形化界面,十分好用,

2015-06-19

LR文法分析

编译原理源代码,可运行,更好的理解LR文法如何分析的情况。

2014-05-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除