查壳,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…
晚上做几个简单的ctf逆向睡的更好 logmein elf文件 ida看看main函数伪代码 void __fastcall __noreturn main(__int64 a1, char **a2, char **a3) { size_t v3; // rsi int i; // [rsp+3Ch] [rbp-54h] ]; // [rsp+40h] [rbp-50h] int v6; // [rsp+64h] [rbp-2Ch] __int64 v7; // [rsp+68h] [rbp-…
题目提示是走迷宫. 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…
关于apk 逆向中的一些工具的使用,看了不少文章,也使用过有很长一段时间了,今天对此做一总结: 几种文件之间的转换命令: 1. odex -> smali java -jar  baksmali.jar  -a <api_level>  -x <odex_file>  -d <framework_dir> 2.smali ->dex java -Xmax512M -jar samli-2.0.jar  <smali_dir>   -o class…
前言 上一次我们反编译了手Q,并遇到了Apktool反编译直接crash的问题,虽然笔者很想在这次解决这个问题,但在解决途中,发现该保护依赖于很多知识,所以本次先插入一下,正所谓知其然知其所以然,授之鱼不如授之以渔,只有知道一些基本原理,才能让我们以后能自行解决更多问题. 那么,你知道么?从我们在Android Studio中,点击run,到app运行在手机上,之间究竟发生了什么,代码和资源是怎么变成APK的,而APK又是怎么安装上去,并能执行的呢. build-simple-overview…
http://blog.zhaiyifan.cn/2016/02/13/android-reverse-2/ 2/18日增加对aidl和java编译的描述. 前言 上一次我们反编译了手Q,并遇到了Apktool反编译直接crash的问题,虽然笔者很想在这次解决这个问题,但在解决途中,发现该保护依赖于很多知识,所以本次先插入一下,正所谓知其然知其所以然,授之鱼不如授之以渔,只有知道一些基本原理,才能让我们以后能自行解决更多问题. 那么,你知道么?从我们在Android Studio中,点击run,…
Android apk逆向:反编译,回编译,签名,打包流程. 第一步: apk 反编译. 1) 打开命令行窗口,输入java -version, 检测当前java版本,若版本较低, 则下载JAVA SE, 需要添加环境变量. 2) 需要下载apktool, 需要添加环境变量,然后再命令行窗口输入apktool查看是否安装成功. 3) 在C:\Users\XXX\AppData\Local 下新建一个apktool\framework目录,否则反编译时会有警告. 4) 命令行窗口,进入apk在文件…