BugkuCTF-Reverse
文章平均质量分 55
本人由2021年5月29日注册加入bugku平台进行CTF训练,经过两个月的努力,个人排名由一万多名上升到前25名,从一个零基础的小白到网络安全基础得到质的飞跃,,但还是一个在网安路上徘徊的小菜鸡,这段时间会将已做题目的题解放在这个专栏里显示,希望和大佬们进行交流
彬彬有礼am_03
这个作者很懒,什么都没留下…
展开
-
BugkuCTF-Reverse题游戏过关多解法
解题流程下载程序运行:翻译为:玩游戏n是灯的序列号,m是灯的状态如果第n个灯的m是1,它就亮,如果不是,它就灭起初所有的灯都关上了现在您可以输入n来更改其状态但是你应该注意一件事,如果你改变Nth的状态p、 (N-1)th和(N+1)th的状态也改变所有灯亮起时,flag将出现现在,输入n输入n,n(1-8)就是输入一个1到8之间的数,例如1:就会改变周围的三个数的状态,令8、1、2三个数变亮,再输入一个2:也会改变2周围三个数的状态,令1、2熄灭,3亮起。多次输入后,最后8个数原创 2021-08-28 16:29:00 · 1671 阅读 · 0 评论 -
BugkuCTF-Reverse题特殊的Base64
知识点换表的base64特点:1.出现64个字节的字符串(其实应该叫做表)作为数组取值,并且(经常,不是一定)出现“/”和“+”符号2.=作为补位,体现为对3求余(%3)Base64 字典表顺序Ida打开F5找到加密的,点开basekey解题流程无壳一看这个就知道base64的码表肯定被改了,然后拖进ida一看用ida64打开。基本都是构造函数和析构函数,其里一个最显眼的是查找一下base64Encode(&result);,base64 的码表估计就藏在里面看了这个原创 2021-08-28 16:28:47 · 1723 阅读 · 0 评论 -
BugkuCTF-Reverse题入门逆向多解法
补充:IDA里面十六进制转字符的快捷键:R方法一第一步PEID,这里可以看出程序是32位的查壳:(无壳)拖进IDA32分析:先查看伪码:F5找到main函数发现有许多 mov 指令,66H 是 ‘f’,6CH 是 ‘l’,推测这就是 flag 的 ASCII 码值。得到flag:flag{Re_1s_S0_C0OL}方法二也可以用动态调试的方法。动态调试这就需要用到 OD。先下一个断点,然后单步运行,看看栈里的变化。例如,我就找个 0x00401475 的地址。在 OD原创 2021-08-28 16:28:36 · 580 阅读 · 0 评论 -
BugkuCTF-Reverse题逆向入门
此题相比于逆向题,更像杂项题010editor打开一看发现是图片的base64编码原创 2021-08-28 16:28:23 · 194 阅读 · 0 评论 -
BugkuCTF-Reverse题不好用的ce
解题方法一下载程序,运行一下:点确定,有会弹出一个新的窗口:点击Command按钮,左上角的数字就会增加,大概是要我们点击一万次:PEiD查加壳:并没有加壳,是MFC编程的小软件。所以我们用IDA打开,是没法查看伪代码的:查看字符串也没有找到有用的信息,只有一个标题的From1:直接用OD打开,动态调试:MFC程序停在统一的外层入口处7770A9E0,直接Ctrl+G或者点击断点跳转到我们内层程序:右键->查找->所有参考文本:其实上面的DeZmqMUhRc原创 2021-08-27 15:25:10 · 523 阅读 · 0 评论 -
BugkuCTF-Reverse题mobile1(gctf)
知识点java.security.MessageDigest类功能:用于为应用程序提供信息摘要算法的功能,如md5和SHA。换句话说,就是生成md5或者是SHA密码。相关:getinstance:静态函数,用来实例操作和初始操作。update:处理数据reset:重置摘要digest:明文变为密文解题流程根据题目下载了一个压缩包首先下载文件,看到是apk文件,那就是安卓逆向。拿模拟器来运行看看jeb打开文件,找到关键函数分析代码,计算v1的md5,形成的md5密文的字符串取偶数就原创 2021-08-27 15:03:57 · 753 阅读 · 1 评论 -
BugkuCTF-Reverse题mobile2(gctf)
下载文件将AndroidManifest.xml直接放在010里面找到flag此题根本不像个逆向题原创 2021-08-27 15:03:32 · 590 阅读 · 0 评论 -
BugkuCTF-Reverse题NoString
知识点我们需要知道异或(^)操作举例:11001001^00110001=1111100010=1;01=1;11=0;00=0异真同假当我们得到11111000和00110001,我们怎么得到11001001?当然也是异或11111000^00110001=11001001C语言的9u即异或9c语言数字后面带个U是表示无符号类型的数据。U是unsigned的首字母。如:unsigned int a = 32, b; b = 32 + 12U; // 12是一个无符号类型的数据。U表示该常数原创 2021-08-27 15:03:02 · 671 阅读 · 0 评论 -
BugkuCTF-Reverse题SafeBox(NJCTF)
先下载软件,发现是个安卓的apk安装包,安装之后打开:一、反编译查看源代码只有一个输入框,其他的点不了。应该是要输入某个字符串然后判断是否正确,之后返回flag。打开apk反编译:两个类主要的差别就是:MainActivityandroidTestandroidTest相比于MainActivity,就是为了不限制之间4,5两位的数字需相等,而且出c3有加10再转换成字符。方法:正向暴力破解编写python脚本暴力破解:MainActivity.java#!usr/bin原创 2021-08-27 15:02:37 · 645 阅读 · 0 评论 -
BugkuCTF-Reverse题signin
知识点reverse()功能:反转数组里的元素的顺序语法:arrayobject.reverse.()这类方法会改变原来的数组,不可逆转tostring()功能:将各类进制的数字转化为字符串语法:number.toString(radix)(radix代表进制数)字符串的管理地方是string.xmljava在引用函数时要倒着引用解题流程随便输入几个数据,点击LOGIN,flag要么从源码里得到,要么输入正确的值跳出flag1.用jeb打开,找到MainActivity,右键解析成原创 2021-08-27 15:02:16 · 796 阅读 · 0 评论 -
BugkuCTF-Reverse题Timer(阿里CTF)
知识点JEB相当于Windows平台上的IDAsmali代码:双击Bytecode,出现smali代码;相较于C之汇编,那么smali之于JavaonCreate:一个activity启动回调的第一个函数就是onCreate,这个函数主要做这个activity启动的一些需要的初始操作的工作。onCreate之后调用了还有onRestart()和onStart()等。解题流程下载apk包apk安装之后出现一个读秒的,20万秒,大于3600,所以大于一个小时,所以太慢了,不等了。jeb反编译原创 2021-08-27 15:01:54 · 742 阅读 · 0 评论 -
BugkuCTF-Reverse题love
下载附件先查壳发现没加壳再拖进 IDA 分析按shift+F12查找字符串,可以看到如下 Base64 加密的痕迹,可判断基本是一个反解 flag 的题目找到主函数按F5查看伪代码,如下:可以发现这样的一个关键函数,也就是会将 Destination 与 Str2 进行比较,如果正确为right分析可知:将输入的串Str1先进行base64加密 再与串Str2比较 若相等 则输出"right flag"由此,我们只需将Str2也就是"e3nifIH9b_C@n@dH"进行解密即可将原创 2021-08-27 13:46:49 · 265 阅读 · 0 评论 -
BugkuCTF-Reverse题LoopAndLoop(阿里CTF)
下载apk文件先解压安装下看看什么情况打开文件,得到一个LoopAndLoop的apk,打开进去,让输密码,点击按钮,可以看到Not Right!或者Not a valid integer number的提示,显然,只要找到密码,找到flag就快了接着直接··载入JEB双击MainActivity右键->解析下面我把文件保存下来,看得舒服一点其里包含两个原生函数,chec和stringFromJNI2。根据oncreate的setOnClickListener里得到的逻辑可知原创 2021-08-26 19:21:04 · 2968 阅读 · 1 评论 -
BugkuCTF-Reverse题First_Mobile(xman)
知识点1.getByte()功能:返回字符的ascii码值2.equals()功能:用于将字符串与指定的对象比较。结果:相等时返回true,反之返回false下载apk文件使用jeb3打开反编译代码分析,程序将editText里的内容进行一次encode.check检查,通过就显示correct那核心代码应该在encode函数里这个函数逻辑很简单,就是对输入的长度为16的字符串的每个字符进行运算,若运算结果字符没有变,就通过。解方程太复杂了,编写一个简单的python脚本进行爆破原创 2021-08-26 19:07:20 · 482 阅读 · 0 评论 -
BugkuCTF-Reverse题easy-100(LCTF)
下载附件,得到apk文件一道安卓逆向题,JEB反编译,查看 MainActivity分析可得,主函数会先执行 p 函数,创建了一个按钮监听事件在 classs d 里,class d 里的 onclick 函数,当我们点击安卓的按钮,触发函数。if 条件判断正确就显示 flag,并且调用了 main 里的 a 函数,其里第一个参数是句柄,第二个参数是调用了 a 函数(另外一个a)返回一个字符串,第三个参数是我们输入的字符串。于是我们查看 a 函数(此部分在MainActivity):通过原创 2021-08-26 18:45:49 · 3119 阅读 · 0 评论 -
BugkuCTF-Reverse题Easy_vb多方法解决
先查壳:我们可以看到这个是Visual Basic 编写的程序,因此,这个是没有加壳的VB程序。方法一:MCTF{N3t_Rev_1s_E4ay}改为flag{N3t_Rev_1s_E4ay}方法二:IDA,F5方法三:OD打开文件智能搜索:原创 2021-08-25 22:55:01 · 273 阅读 · 0 评论 -
BugkuCTF-Reverse题Easy_Re多方法解决
下载附件首先打开程序:方法一:第一步PEID,发现为cpp文件,32位程序根据flag格式:DUTCTF{}扔进IDA里,直接在16进制编辑器里Alt+T搜索CTF字符串Flag:DUTCTF{We1c0met0DUTCTF}或者在010editor里查找方法二:OD打开文件插件->搜索方法三:OD打开文件:方法四:OD打开文件转到“flag get”的字符串对应的地址,向上查阅,发现一个jnz跳转语句刚好跳过“flag get”,下断后运行程序到达这一语句原创 2021-08-25 22:50:40 · 1106 阅读 · 0 评论