bugku逆向笔记

逆向刷题

1.入门逆向
解压后用ida反编译bugku逆向笔记_第1张图片直接就可以看到flag的ASCII码,用c语言把他们输出,轻松拿到flag
bugku逆向笔记_第2张图片
2.easy-vb
用od打开,使用智能搜索,flag get

bugku逆向笔记_第3张图片
3easy_re
和上题基本一样,用od打开,搜索ASCII码,轻松找到flag
bugku逆向笔记_第4张图片
4.游戏过关
一个奇怪的小游戏,1-8每个数字输一次就可以过关
6,逆向入门
进去直接得到一个base64码,在线转成二维码扫码就行了
7,love
用ida将主函数反编译
bugku逆向笔记_第5张图片
从第三十行代码直接可以看到说s2和dest比较,来决定程序的输出,而s2可以直接得到
在这里插入图片描述只看s2还得不出什么,再通过代码可以知道dest与sub-4110b函数有很大的关系,打开这个函数
bugku逆向笔记_第6张图片
bugku逆向笔记_第7张图片
可以推测s2由flagbase64加密得到,将其解密,因为不会python,所以从网上找了个解密脚本,解密后得到flag
bugku逆向笔记_第8张图片

换一道自闭题

climb mountain

这道自闭题让我去学了od动态分析,esp手动脱壳,差点自闭
先下载,查壳

bugku逆向笔记_第9张图片

脱壳后用ida打开
bugku逆向笔记_第10张图片bugku逆向笔记_第11张图片随机数种子一定,可以找到rand(出来的数应该也是一样的
bugku逆向笔记_第12张图片将代码输出可以得到这张表,再通过if(sub-4110cd(v7)==19)可知,字符串长度为19,再通过下面的if语句可以知道字符串值只有76或82(l和r)题目要求最大步数,通过算法解得
不会写算法,网上参考的算法,以后再去学习,bugku逆向笔记_第13张图片输入后还是错的,观察后应该是sub41114f改变了值,用od载入,找到这个算法bugku逆向笔记_第14张图片分析汇编可得它将偶数位的数值异或4,解密得到RVRVRHLVRVLVLVRVLVL(flag)

file

elf文件,拖入ida反编译,要求找出丢失的文件,反编译查看主函数

bugku逆向笔记_第15张图片
flllag,k都是固定的值,v16通过文件输入得到,v15通过sub_400eb9得到,再通过*fllag!=(K^v16[k] ^v15[k])
可以知道v[16]即时从文件中读取的数值,再通过提示可以知道这个题目的flag就是文件的md5

bugku逆向笔记_第16张图片

bugku逆向笔记_第17张图片分析得出v15为str人-home的十六进制转换为十进制,strr-home也为固定值,可以在ida找到
在这里插入图片描述
在这里插入图片描述
所以可以通过逆运算即可得到v16,再写入文件计算md5即可得到flag,因为有不可见字符,所以用16进制写入文件,计算md5得到flag:flag{914a7b9df69eab5b74b9edb7070e53e8}
bugku逆向笔记_第18张图片

你可能感兴趣的:(学习笔记)