作者:I春秋作家——HAI_ 0×00 前言 看这篇可以先看看之前的文章,进行一个了解.Android逆向-java代码基础(1)Android逆向-java代码基础(2) 之前看到有大佬用smali写了一个demo,是一个加法程序.这篇也主要是讲一下关于java的基本的计算,毕竟这个是基础.可能要同时写一下Android基础. 文章里的内容可以选读,里面会有一些问题的解决方式.也可以读一下. 0×01 java 加法运算 这个运算和数学里运算一样,这里写一个简单的demo. 1.int加法 1…
动画效果编程基础--Android Animation 动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面旋转动画效果 JavaCode中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation 画面转换位置移动动画效果 RotateAnimation 画面旋转动画…
这段时间因为某些业务驱动,开始研究一些逆向相关的东西,浏览了下其所包含的大致内容,发现真是一个新大陆,跟之前耳听目染过的一些门面介绍完全不是一个层级的,真正的印证了下手难这一说法.   谨此以本文开始记录我的Android逆向之旅吧. 总述   习惯于应用层开发的我们都知道,在应用上架的时候都需要程序经过编译.签名 .生成一个后缀为apk的文件才能发布到应用市场,而我认识的逆向就从这个apk开始(逆向分为多种逆向,为了避免混淆概念这里的逆向暂且就特指apk的逆向). 工具准备  工欲善其身,必先…
这节正式开始破解编写的第一个Android工程,打开Android Killer,把第一节自己编写的Android apk拖入Android Killer. PS: 如果Android Killer不能编译成APK,或者反编译失败,应该是apktool等工具版本低了,参见AndroidKiller高版本反编译失败解决. 把APK拖到Android Killer界面,把apk文件拖到Android Killer界面,工具自动开始反编译,反编译完成后点击左侧入口处即可打开MainActivity.(…
学习android对我来说,就是兴趣,所以我以自己的兴趣写出的文章,希望各位多多支持!多多点赞,评论讨论加关注. 最近有点忙碌,对于我来说,学习Android开发,是对于我的考验,最近一位大佬发给我一道题目,我既然无力解决,所以我也要加把劲了. 学习android的同学,一定要对java有所了解,再来学习. android 类的概念 究竟什么类呢? 类的定义 定义的是一个类,把一个类实例话就生成了一个对象,这样讲你能明白么?对象就是你从这个类生成的变量.你用的是一个对象变量,而这个对象变量是根据…
查壳,nSpack壳,直接用软件脱壳,IDA载入程序. 很明显,就是将402130的数据和输入的数据进行异或,判断是否等于402150处的数据.dwrd占4字节. 这道题主要记录一下刚学到的,直接在IDA使用python脚本. from ida_bytes import get_bytes s = ''data = get_bytes(0x402130, 0x402140-0x402130)r = get_bytes(0x402150, 0x402200-0x402150)print(len(r…
题目提示是走迷宫. IDA载入程序分析. 输入字符长度必须是24,开头必须是nctf{,结尾必须是}.在125处按R就可以变成字符. sub_400650和sub_400660是关键函数,分析sub_400650. v10的下一字节减1. sub_400660v10的下一字节加1. 分析这两个函数. v10减1. v10加1 再看最后的比较函数. v9就是刚才的v10,应该是IDA自己随机的吧. 进入函数a1是迷宫地址,a2是v10下一单位,SHIDWORD就是这个意思,a3就是v10. 经过分…
运行程序乱码,OD载入搜索字符串,断电到弹窗Flag附近. 发现跳过00B61000函数,弹窗乱码,我们试试调用00B61000函数.将00B61094的指令修改为JE SHORT 00B6109b.然后跟进函数,单步执行. 拿到了flag. 原程序是在00B610B9处弹窗,我们将00B610A3的指令修改为JE SHORT 00B610B9.保存修改,然后就会弹窗真正的flag.…
iDA载入程序,shift+F12查看关键字符串,找到双击来到所在地址,进入函数 然后进入主函数, 经过分析,可以得出:输入的字符要等于  经过处理的v7和v8的异或.v8很明显,但是v7是怎么回事呢,新手没有遇到过,所以上网查看资料,LL是长长整型,v7要转换为16进制然后在转换为字符串,而且字符是小端序,所以把得到的字符翻转然后和v8的每一位进行异或.贴出脚本: a = 'harambe'b = ':\"AL_RT^L*.?+6/46'print(b)tmp = ''for i in ran…
看题目就知道查找不到关键字符串,为防止踩坑,strings命令查看,没有找到有用的字符串.IDA载入程序查找入口函数, main函数中有4个函数,经过分析判断authenticate()为关键函数,跟进其中, 很明显,decrypt是关键处,接下来我们使用gdb调试,当然直接分析decrypt也很容易得出flag,但在此我们学习gdb-peda的使用,我也是第一次使用.... 找到这个函数的地址0x08048658,然后下断点运行,运行的的命令是r.下断点:b *0x08048658.然后使用n…