- 博客(33)
- 资源 (5)
- 收藏
- 关注
原创 Android图片识别
本来想利用OpenCV的工具实现手机上的图片识别,但随着对OpenCV内容的探索,严格地说,我认为所谓的“识别”,只不过是图片的“匹配”而已。因为计算机在图片的相似度比较上太笨了,不像人眼一看就能判断,它需要依赖大量计算的算法方可“匹配”出相似点。而且!根据相似点匹配,从而判断两张图片的内容是否一样,还需要很大的人为主观干涉。目前研究了一下OpenCV关于图片特征匹配的基本内容,基本上实现
2017-03-02 17:38:27 21533 7
原创 Android Studio OpenCV环境的简单搭建
简单?绝知此事要躬行!现在回头看非常简单,但真正把它做好却很难。虽然网上都有相关的资源,但由于日期久了,而且版本不一样,导致按部就班不一定能成功,甚至有一些细节抠起来真是蛋疼,今天折磨了一个上午终于搭建好了。为了以后省点心,还是纪录一下~解决问题的过程是艰难的,但也是锻炼能力的好事。因为主要以java为主开发Android,所以对于C/C++开发也就少了,所以为了效率,搭建好符合自己开
2017-03-01 09:19:57 3443 2
原创 2016年总结
毕业工作半年,一路风雨,最感激的还是自己~虽说是对2016年的总结,但我还是想把大学的一些事也写进来,因为大四这一年可以说是人生的一个转折点,现在回首,过去的种种的迷茫基本已不复存在。所谓的学霸记得那年,我还在高数课的第一排坐着,静静地当一名伪学霸。总的说,大学生活的前几年还是挺惬意的,虽然没有那些学霸科科拿A+,但也没有像学渣科科挂,记得所有的课程就高数和C++拿了个A+,除
2017-02-03 10:59:10 1306 4
原创 Android设备与电脑Http通信简单搭建
仍记得刚刚实习的那时候,由于项目需要用到网络通信,于是便问了做后台的给我提供接口。做后台的是从培训机构出来的,然后我就问他学的这个是什么,需要多少钱。他说这是java EE,交了1万多学费。当时我心想,哇去,这么贵,想必干这行钱途满满呀~一年之后的今天.......由于日常工作涉及到HTTP网络通信较多,加之好奇心较重,于是便自个探索了一下这个1万多学费的内容是个咋回事~嗯,其实jav
2016-11-29 09:44:43 5359
原创 Android设备信息攻略之硬件信息build
最近又懒又忙,所以很久没写博客了~因为项目需要,我把某社交软件稍微破解了下,重打包后实现了一机多开。本以为一劳永逸,没想到一周多之后,多开的那几个APP副本被告知“非法客户端”,账户都被强退,冻结了,这就有点尴尬了。不过,从它没有立即处理,而是过了一周才处理,可以推测并不是本地检测,而是服务器检测。那么,服务器是怎么把这些账户给毙了呢?实际上,不管它是用大数据分析检测,人工检测或者其他
2016-10-28 16:20:08 13070 3
原创 Cydia Substrate之hook native代码
由于许多公司对APP的安全性越来越重视,因此很多公司的核心业务处理模块一般会采用NDK开发,通过jni机制调用C代码来实现模块功能。这种用C/C++开发出来的代码反编译分析的难度远远大于java开发,因为C/C++反编译过来的汇编语言可读性很差,这给反编译人员带来很大的挑战。然而对于我这种初入逆向分析的菜鸟来说,每次看到native修饰的方法都觉得心里有道坎,尽管如此,我还是想在里面搞些文章,希望能分析出点成果~
2016-09-27 15:23:29 9964 5
原创 java加解密之RSA使用
最近为了分析一段请求流,不得不去研究一下RSA加密。网上关于RSA的原理一抓一大把的,这里只是简单说说我的理解:1. 两个足够大的互质数p, q;2. 用于模运算的模 n=p*q;3. 公钥KU(e, n)中的e满足 14. 密钥KR(d, n)中的d满足 d*e % (p-1)(q-1)= 1,%是取余运算。因为公钥是公开的,所以我知道了e和n,那么根据2,3,4式子的
2016-09-20 18:46:17 60000 9
原创 java实现在同一Excel文件上写数据
为了统计分析facebook APP客户端的注册数据,一开始是将数据导入到txt的,然而txt太难看了,内容都密密麻麻凑成一堆。。。于是,我就想到了将其导入到Excel里,这样一来,可观性也大大增强~虽然网上有许多教程,但还是折磨了我不少的时间,原因一是网上的教程的实现环境不可能和你现在的一样,多少有点出入,二是官网的API解释感觉有点鸡肋(可能个人英语不好,无法理解其深处含义~)本来是打
2016-09-05 20:00:14 5095 1
原创 NDK开发——Android Studio实现JNI
曾经,作为一名Android应用开发者,掌握NDK的开发是很有必要的,虽然之前我并没涉足(惭愧~),随着移动应用软件的核心业务,如加密处理,游戏开发移植等操作的需求增大,NDK的开发显得尤为重要。现在,作为一命Android逆向分析工程师,分析NDK开发中涉及到的so库也是很有必要的,为了结合简单的NDK工程学习IDA PRO的逆向分析,懂得NDK的简单开发也是有一定的益处的。于是,我找了
2016-08-15 20:03:28 831
原创 java压缩编码之GZIP
逆向分析中将分析结果的 byte[ ] 以十六进制的形式打印出来,常常会遇到这样的格式:1F8B08000000000000002597C712ABBC0E809FE69C。。。。。。省略N多。。。。。。。看其格式就知道是GZIP压缩的格式。根据目前我逆向分析的好几个APP应用,它们使用网络请求时,基本上都使用了GZIP压缩技术对其请求返回数据进行GZIP压缩或解压处理。
2016-08-12 10:57:52 6370 1
原创 java加解密之AES使用
上一次的随笔记录了关于DES加解密算法的使用,这次的随笔是关于AES的。因为各种算法名字,模式名字很多都是三个字母,太容易混淆了,所以单独写成一篇。AES加密也是用得比较多的,在逆向分析中也经常遇到,加密的强度也是妥妥的,传说,它是为了解决DES的过时而征集的算法~~根源就不说了。-----------------开始分割线---------------------同DES
2016-08-11 17:56:24 27842 7
原创 java加解密之DES多种使用方式
最近逆向分析中,常常遇到加解密的内容,接触得比较多的加解密算法一般有对称的DES和AES,非对称的RSA,单向的MD5等。这里就DES的使用研究进行一个随笔记录,并不会说其实现原理,原理可以自行百度。DES作为56位秘钥加密目前已经被容易破解了,尽管如此,在一些简单而又不是很敏感的数据加密中还是有它的身影。在Android逆向分析中,在被混淆的代码里,往往你能看到一个方法a的参数是by
2016-08-11 15:04:59 33923 2
原创 Android逆向分析之Cydia
最近开始使用Cydia Substrate框架进行逆向分析。Cydia是什么东东我就不说了,自行百度,这里只是通过一个例子,介绍如何使用Cydia Substrate框架进行hook Android java代码。相比Xposed框架,Cydia是有一定的优势的,根据我目前使用的情况,暂时有如下两点:一是,Cydia能hook除了第一个smali文件夹外的第二第三个smali文件夹。
2016-08-10 11:44:47 2566 1
原创 Android逆向分析案例——某点评APP登陆请求数据解密
上一次的逆向分析案例中讲了如何去分析某酒店的APP登陆请求,为了进一步学习如何逆向分析以及学习其他公司的网络传输加解密,本次案例将继续就登陆请求的数据加密进行分析,实现从网络抓包的密文到明文的转换,这次成为炮灰的是某点评的APP~首先,分析的步骤还是和上一次分析某酒店的APP那样:反编译-->找关键代码-->分析请求代码加解密原理-->验证密文到明文准确性。分析步骤的重点主要是第3
2016-08-09 17:15:32 17640 7
原创 java异或加解密及其改善
最近在做Android的逆向分析,我主要是负责网络请求的逆向分析,在分析的过程中必然会碰到加解密的过程。其中最常见的加解密就是异或。异或加密是数据加密中比较简单的一种,也是比较常用的一种方法。所谓异或就是一种位运算,比如1^1=0;1^0=1,也就是两个运算位为同为“1”或“0”则返回“0”,若两个运算位不同为“1”或“0”则返回“1”。算了,说多无用,直接代码:
2016-07-20 18:05:15 5548 4
原创 Android逆向分析案例——某酒店APP的登陆请求分析
为了练练手,增长逆向分析的知识,本次博客打算分析一下某酒店APP的登陆请求。这次的逆向分析还是以网络请求为例,通过分析其登陆请求数据的加解密原理,将请求数据从密文转换成明文。好了,既然明确了需求,那么准备开始分析了,分析的步骤还是很简单:反编译-->找关键代码-->分析请求代码加解密原理-->验证密文到明文准确性。第一步,反编译:这一步中,一般来说我们可以结合smali和j
2016-07-20 12:44:35 5387 1
原创 Android逆向分析案例——某地图的定位请求分析
微信里面有个“附近的人”,相信大家都知道,大概的原理就是调用腾讯地图的sdk进行定位,然后把个人的定位信息发到微信服务器上进行处理,再把一定范围内的人的信息返回并用列表的形式显示出来。因为刚踏入逆向分析这行,所以抱着学习的态度,研究一下大公司的东西,涨一下知识,嗯,本次的案例就是分析腾讯地图中定位请求数据的加解密,以及搭建简易的APK模拟实现定位请求。为了分析这一案例,是要掌握一定的分析工
2016-07-19 14:43:55 6087 1
原创 Android逆向分析之Xposed的hook技术
Android逆向工程里常用到的工具除了的dex2jar,jd-gui, Apktool之外还有一个Xposed。zhe
2016-07-08 16:56:33 31763 9
原创 Android逆向分析之APKTool
由于刚踏入Android逆向分析领域,因此有许多的不懂,所以得不断地去学习。因为是入门,我又有一定的Android应用开发基础,所以先从一些简单工程的反编译开始入手,先了解一些反编译所用到的工具。上一次写博客,记录了反编译工具dex2jar和jd-gui 的使用,这次继续记录另一款比较强大的反编译工具APKTool。该工具的使用方法很简单,只需要在dos控制台里输入apktool d
2016-06-12 18:07:01 4841
原创 java编码之BASE64
因为在Android逆向分析中需要定位到网络请求模块,并对网络请求,一般为http请求进行捕获,但是http请求提中的数据一般都经过加密处理,所以,在逆向分析中也需要通过了解一定的加解密算法才能知道其加密的方法,并从反编译代码中获取其加密算法,然后抓包并分析其敏感数据。因为之前一直做应用层,虽说用到了http,但由于负责后台javaEE的同学也是个新手,所以并没有用到什么加解密算法进行处理,对
2016-06-08 14:58:09 5949
原创 Android逆向分析之dex2jar和jd-gui使用
从大三伊始到大四落幕,从刚开始接触Android到辞掉第一份实习工作,我接触Android应用层开发也快接近两年了。越来越发觉Android的应用层已经没什么挑战性了,想当初刚开始学习Android的时候,弄了一个Activity出来显示在手机的那份喜悦,真是~哈哈~,应用层的开发无非也就调用JDK,SDK而已,现在感觉有点小儿科啊,实习期间,每当工作项目之余,基本都泡到自定义View的绘制去,那
2016-06-07 18:00:46 6065 1
原创 自定义view之柱状图
因为公司项目需求,美工的设计图要我画一个柱状图表,我第一时间就想到了AChartEngine.jar这个玩意。但实际用起来却并没有达到设计图上的细节需求,抱着美工要猿画,猿不得不画的赴死精神,豁出去了,一个字,干~用过AChartEngine.jar包里的都知道,其设计模式为一个工厂类,通过设置renderer渲染器类,然后将其作为参数传入工厂,从工厂里取出相应的图表。这里就不搞什么工厂类
2016-04-29 11:06:22 894
原创 设计模式笔记——抽象工厂
上一篇说到了工厂模式,那么学习了工厂模式,抽象工厂也得学习一下。实际上,抽象工厂模式实际上就是在工厂模式的基础上再嵌套一层工厂模式而已,通过父工厂制造子工厂。只是,也并不完全是嵌套一层,各个工厂会被抽象成一个集多个工厂共同点的抽象类。通过工厂制造器,创建出该抽象工厂的子类。好比如说,一个博客页面有个换肤系统。那么假如有两套风格,黑和白。那么,我选择了黑色风格的,实际这步就相当通过换肤系统这个工
2016-04-28 14:49:01 483
原创 设计模式笔记——工厂模式
工厂模式是最常用的设计模式~~虽然网上是这么说,实际上是不是不知道,只是在平时开发时确实又看到过,比如android开发里引用三方的库AchartEngine,里面初始化一个自定义内容的渲染器类后,将其作为参数传给Factory类的静态方法就可以返回一个折现图,或者柱状图等等。
2016-04-27 14:11:33 424
原创 自定义view之刻度尺
由于项目需求,个人信息的输入是以一个刻度尺滑动作为数据选择方法输入。如下图哎呦喂,看起来很棘手的样子。实话说,确实不好做,所以~~~百度~~~哈哈哈哈。然而,结果令我有点失望,网上的解决办法并不多,现成的工程又不符合自己的需求,改起来又耗时间,那咋办呢?一个点子瞬间闪亮,没错,一条很长的图片加HorizontalSrcollView,重写onScrollChan
2016-04-26 17:11:27 1487 1
原创 设计模式笔记——MVC模式
看到HR桌面上的几份简历,我总能看到MVC的身影,但为什么都喜欢把这东西往简历上贴呢,它真的有那么厉害吗?可能小弟我造诣实在太低了,在实际项目中基本没用过这东西,哪怕用了也不知道吧。这玩意是个什么鬼,其实我也知道个大概,有人说是设计模式,也有人说是框架,但我更偏向于设计模式。据我的了解,设计模式是为了代码重用而设计的模式,而框架是为了模块重用而搭建,也可以说是轮子,直接用或者扩展。好了,模
2016-04-26 14:44:38 405
原创 设计模式笔记——单例模式
前几天校园招聘会,投简历时就直接给我来了一份笔试题。我一看,卧槽,全都是考很基本很基本的题,可以说基本到恶心,然而对于我这个实习了半年,可以独自把一个项目完成的程序猿来说,很可惜这些基本题却把我放倒了,真是讽刺啊。就感觉一个全栈工程师被问如何输出一个helloworld被吓得跪地直喊OMG一样,哈哈,开个玩笑。没办法,面向学生招聘,企业都爱玩这一套,对于我这个有实战经验的人来说,尽管这些基本的东西
2016-04-25 15:02:51 551
原创 自定义view之心率线
先发个图:我拿着设计图问美工MM,中间这波浪是什么鬼。她说是心率线。额,,,,好吧,无语,画呗。再怎么说你也弄个正弦波出来啊,算了,看你颜值的份上。。。效果图:基本原理图如下,在view的右侧非可视区内加载脉冲数组,一个脉冲数组记录了脉冲那几个点在view中的高度1. 定义attr属性,并在构造体初始化。attrs.xml:
2016-04-06 11:47:24 1405
原创 自定义view之圆点progressBar
上一篇博客弄了个自定义样式的等待对话框,里面那个圆形progressBar只是随便用了环形的shape来布局,后来发现真的丑得不要不要的,所以手动画了一个圆点progress。y由于个人是不喜欢在开发APP的时候放大型的图片或者gif图这些会增加APP体积之类的东西,所以那些规则的图形和动画基本上都喜欢用代码画出来,虽然有点磨时间,但最后项目后期和做ios版本的同事相比,喜欢放图片的同事做出来的A
2016-04-05 16:42:07 1822
原创 自定义样式dialog及使用
最近要做的项目都涉及到了服务器请求和蓝牙连接等耗时操作,在处理这些耗时操作时需要考虑到用户体验就必须弄个等待对话框。于是便打算自定义一下等待框的样式,使其达到其需求,同时也将其封装起来,到时要用的时候就可以方便直接用了。1. 先定义一个会旋转的shape,用做无进度的圆形progressBar。shape_rotate_progressbar.xml:<rotate xmlns:an
2016-04-05 12:02:45 650
原创 自定义圆形ProgressBar
公司的项目已经完成了几个了,无一例外,都有计步的功能,我的天哪,能不能有点创意,好吧,既然还要套代码,那么就把一些刁钻的UI给封装好,以后就可以直接使用提高效率了。说是刁钻,其实也并没有很夸张,只是原生控件实现不了而已。这次的自定义View就是RoundProgressBar,顾名思义,圆形的ProgressBar而已,网上其实也有相关的博客,但我这里并不是简单的在View上面画个圆而已,我会
2016-04-03 22:14:13 957
原创 自定义view之圆形ImageView
当初刚开始搞android时都不怎么注意细节,一些组件随便放上去加个监听器什么的就行了,最多也是把background弄一些颜色罢了。但后来从新回去看一些作品和项目,发现真的丑爆了。一个好的APP我觉得细节上的东西是很重要的,比如组件的圆角化,或者添加selector增加交互感等。在公司里,一些同事从来不用selector,一些按钮,按下去毫无交互感,都不知道按中了没有,给整个APP的用户体验感很
2016-04-02 10:45:12 1081
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人