public class Hello { public static void main(String[] args) { System.out.println("hello android"); } } javac Hello.java # 生成Hello.class文件 X:\Android\sdk\build-tools\26.0.2\dx.bat --dex --output=Hello.dex Hello.class # 生成Hello.dex文件 链接上夜神模拟器,默认端口…
查壳,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…
攻防世界逆向:game wp 攻防世界逆向新手区的一道题目. 是一道windows的creak,动态调试打开是这样的: 题目说明是让屏幕上所有的图像都亮之后,会出现flag,看来应该是可以玩出来的. IDA打开后,发现是静态链接.我首先shift 12看了一下,然后去rodata段看看能不能找出flag对应的字符串,无果. 然后找到主调函数,发现程序结束后,与flag对应的函数如下: 这样看来,把对应的变量存储在一个文件里,简单做一个算法逆向就可以了.脚本如下: ls1=[] ls2=[] i=…
一.在SO中关键函数上下断点 刚学逆向调试时.大多都满足于在SO中某关键函数上下断点.然后通过操作应用程序,去触发这个断点,然后进行调试 详细的步骤可以参见非虫大大的<Android软件安全与逆向分析> 简单说:在libsyclover.so文件中有一个函数jnicall1.每次单击按钮的时候,便会调用此函数. 1.静态载入此so文件,找到函数的偏移地址为:0x132C 2.执行android_server3.端口转发 adb forward tcp:23946 tcp:23946 4.运行程…
Android trap攻防                                                                      图/文 h_one 0x01 反编译出错 1.插入无效指令是部分逆向工具崩溃 原理:大部分逆向工具都是线性读取字节码并解析, 如dex2jar,baksmali,apktool等,当遇到无效字节码时,就会引起反编译工具解析失败. 例如:新版的dex2jar 遇到这种情况任然没法转化成jar,在新版本的baksmail和apktoo…
断断续续的总算的把android开发和逆向的这两本书看完了,虽然没有java,和android开发的基础,但总体感觉起来还是比较能接收的,毕竟都是触类旁通的.当然要深入的话还需要对这门语言的细节特性和奇技淫巧进行挖掘. 这里推荐2本书,个人觉得对android开发入门和android逆向入门比较好的教材: <google android 开发入门与实战> <android 软件安全与逆向分析> 1. 我对android逆向的认识 因为之前有一些windows逆向的基础,在看andr…