2021 绿城杯 re wp

编程入门 行业动态 更新时间:2024-10-18 20:26:35

2021 <a href=https://www.elefans.com/category/jswz/34/1712485.html style=绿城杯 re wp"/>

2021 绿城杯 re wp

这里写目录标题

    • easy_re
    • Helloworld
    • 抛石机
    • clockin
      • 总结

这次绿城杯又被大师傅带飞了,我又明明白白的躺了一次,比赛一共3个re +一个安卓
我只做了两个,其他被师傅们秒了

easy_re

(二血)
ida打开 发现是rc4算法
里面有一点小改变 中间异或了0x37

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int b[300];
int s[300];
char key[10]="tallmewhy";//(变) 
char data[1000]={0xF5, 0x8C, 0x8D, 0xE4, 0x9F, 0xA5, 0x28, 0x65, 0x30, 0xF4, 0xEB, 0xD3, 0x24, 0xA9, 0x91, 0x1A, 0x6F, 0xD4, 0x6A, 0xD7, 0x0B, 0x8D, 0xE8, 0xB8, 0x83, 0x4A, 0x5A, 0x6E, 0xBE, 0xCB, 0xF4, 0x4B, 0x99, 0xD6, 0xE6, 0x54, 0x7A, 0x4F, 0x50, 0x14,0xE5, 0xEC
};//(变)
int main(){int j,q,n;for(int i=0;i<256;i++){b[i]=key[i%9];  //8是密钥的长度 (变) s[i]=i;}for(int i=0;i<256;i++){j=(j+s[i]+b[i])%256;q=s[i];s[i]=s[j];s[j]=q^0x37;}for(int i=0;i<256;i++){printf("%d ",s[i]);}printf("\n"); int i=0,t;j=0;for(int w=0;w<42;w++){  //32是data的长度 (变) i=(i+1)%256;j=(j+s[i])%256;q=s[i];s[i]=s[j];s[j]=q; //交换 t=(s[i]+s[j])%256;data[i-1]^=s[t];//s[t]是最后的密钥 }puts(data);return 0;
}

Helloworld

代码含有大量花指令,去除后可以定位到主要加密代码

这里有flag加密后的比较数据,加密算法都在loc_330里面
因为花指令没有除干净(太菜了,不会除了),可以配合着汇编代码看

这里会对flag异或0x22

下面的sub_379里会对flag加3操作
写脚本

#include<stdio.h>
#include<string.h>
char a[100]={188,10,187,193,213,134,127,10,201,185,81,78,136,10,130,185,49,141,10,253,201,199,127,185,17,78,185,232,141,87};
int main(){for(int i=0;i<30;i++){for(int j=0;j<30;j++){a[i]-=3;a[i]^=0x22;}}puts(a);return 0;
}


到时候要再复习一下花指令,老弄得不漂亮

抛石机

null-404师傅解出来的,我直接copywp(嘻嘻
上课前大致浏览了一下题目,难点在于小数和16进制的转化,以前在buu上做过一道这种类似的题

⾸先打开ida,定位主函数:
⾸先进⾏逻辑判断,判断是否是flag{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}的格式,x的取值为1-9
或者a-f
判断如下:


接着,将输⼊的值,不包括flag{-},转换为double类型,转换⽅式为每8个字符的⼆进制变为⼀个
double。然后进⾏解⽅程:

解出后进⾏⼆进制转化:


转化后取前8位,⼤⼩写转换:3FF14A45 40114CF7 BFDEE41E 3FFFA457
然后进⾏倒叙输出:454AF13F F74C1140 1EE4DEBF 57A4FF3F
然后进⾏调式,根据出错的位置对精度进⾏调整,调整后得到:
454AF13F F64C1140 1EE4DEBF 58A4FF3F
然后根据格式调整为:
flag{454af13f-f84c-1140-1ee4-debf58a4ff3f}

clockin

安卓题 由0xK4ws解出 (看到真机羡慕了!!)下面是师傅的wp

adb install -r -t myApk.apk

⾸先安装程序 ⽤以上命令安装程序⽅可安装成功



在Android killer上搜索字符串not admin
把not admin改成admin重新打包


然后启动该APP 输⼊地址和端⼝ 点击打卡拿到flag

总结

要学习的东西还是很多,做题的速度也应该提高,多学习学习别人的wp

更多推荐

2021 绿城杯 re wp

本文发布于:2024-03-05 14:01:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1712478.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:绿城   wp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!