首页 > 其他分享 >暑假第五周

暑假第五周

时间:2023-08-01 18:44:06浏览次数:40  
标签:v7 list 第五 range 暑假 index3 print flag

目录

re5-packed-movement

先脱壳
img
ida打开全是mov 指令,movfuscator混淆
img

法一

shift+F12 搜索字符串找到'Wrong Flag!',
交叉引用可以看到有70多处引用,可能就是逐字符比较
img
随便点一个看看,从每一个'Wrong Flag!'处往上翻可以看到都有一个
mov R2 xxh的指令
img
img
直接搜索R2寄存器内容
Alt+B搜索C7 05 68 20 06 08即mov R2对应的16进制编码
img
得到flagALEXCTF{M0Vfusc4t0r_w0rk5_l1ke_m4g1c}
img

法二

使用idac脚本。
shift+F2打开脚本界面
img
运行得到flag
img

flag

ALEXCTF{M0Vfusc4t0r_w0rk5_l1ke_m4g1c}

reverse-for-the-holy-grail-350

直接看主函数,有点多重点锁定这几个语句
v4 = stringmod(v9),v4小于0就输出auuuuuuugh,大于0才输出tuctf{}
应该就是v4>0时输出flag,跟进一下stringmod
img
stringmod有三个部分先看第一个
img
v4要大于0所以if 要不执行,那么v3就要是3的倍数,并且
v12读取的字符必须等于firstchar[v3 / 3]
img
第二部分是一个异或
img
第三部分
img
查看一下thirdchar和masterArray,有点乱不好提取
img
用idapython导出一下

from idc_bc695 import *
addr=[0x601840,0x601860,0x601880]
for a in addr:
    list=[]
    for i in range(6):
        list.append(Dword(a+4*i))
    print(list)

前三行时对应16进制结果,后三行则是10进制
img

exp

firstchar = [0x41, 0x69, 0x6e, 0x45, 0x6f, 0x61] 
thirdchar = [0x2ef, 0x2c4, 0x2dc, 0x2c7, 0x2de, 0x2fc]
masterarray = [0x1d7, 0xc, 0x244, 0x25e, 0x93, 0x6c]
 

list = [666,]
v7 = 666
for i in range(17):
    v7 = v7 + v7 % 5
    list.append(v7)
print(list)
 
#求flag第0,3,6,9,12,15位
flag = [0 for i in range(18)]
index1 = 0
for i in range(0,16,3):
    flag[i] = firstchar[index1]
    index1 += 1
# print(flag)
#求第2,5,8,11,14,17位 
index2=0
for i in range(2,18,3):
    flag[i] = list[i] ^ thirdchar[index2]
    index2 += 1
# print(flag)
# 暴力求第1,4,7,10,13,16位
index3 = 0
for i in range(1,17,3):
    for j in range(32,127):
        if ((list[i-1] ^ firstchar[index3]) * (list[i] ^ j)) % thirdchar[index3] == masterarray[index3]:
            flag[i] = j
            index3 +=1
            break
print('tuctf{'+"".join(map(chr,flag))+'}')
#[666, 667, 669, 673, 676, 677, 679, 683, 686, 687, 689, 693, 696, 697, 699, 703, 706, 707]
#tuctf{AfricanOrEuropean?}  

flag

tuctf{AfricanOrEuropean?}

标签:v7,list,第五,range,暑假,index3,print,flag
From: https://www.cnblogs.com/Tree-24/p/17598785.html

相关文章

  • C++ Primer 第五版
    当我们使用istream对象作为条件时,其效果是检测流的状态.char:[-128,127].C++17新增byte数据类型,在<cstddef>头文件中定义,取值范围:[0,255].int和long都占用4字节空间.切勿混用带符号类型和无符号类型.\后跟3位以内8进制数字,或\x后跟一个或多个16进制数字都可以代表字符......
  • 代码随想录算法训练营第五天|力扣242.有效的字母异位词、力扣242.两个数组的交集、力
    哈希表哈希表理论基础哈希表,又称为散列表(HashTable),是根据关键码的值而直接进行访问的数据结构其中,数组就是一张哈希表;表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素哈希表解决的问题:一般哈希表都是用来快速判断一个元素是否出现在集合中哈希函数:把学生的......
  • 【暑假例题】20230727 矩阵基本运算(C++)
    题目请使用C++实现矩阵的各种运算矩阵创建矩阵相加矩阵相减矩阵相乘数字乘矩阵矩阵上叠加矩阵左右叠加矩阵转置矩阵旋转矩阵求逆矩阵输出题目分析矩阵创建这里只需注意由于我们需要通过不同的函数对数组进行操作,所以我们需要将数组存储在容器或者使用指针防止数......
  • 暑假生活第三周
    这周我致力于深入学习SQLServer,并掌握一些更具挑战性的知识。作为一个学生,我充分利用家里的学习环境,花费了大量时间和精力来探索SQLServer的高级概念和技术。首先,我将重点放在了存储过程和触发器上。我对存储过程的概念进行了深入研究,并学会了如何编写、调用和管理它们。我了解......
  • 暑假周记(7.30)
    Date类Date:精确到毫秒,代表特定的瞬间SimpleDateFormat:格式和解析日期的类案例演示Dated1=newDate();//获取当前系统时间System.out.println("当前日期="+d1);Dated2=newDate(9234567);//通过指定毫秒数得到时间System.out.println("d2="+d2);//获取某个时间对......
  • 暑假周记(7.31)
    SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日hh:mm:ssE");Stringformat=sdf.format(d1);//format:将日期转换成指定格式的字符串System.out.println("当前日期="+format);/*1.可以把一个格式化的String转成对应的Date2.得到Date仍然在输出......
  • 暑假刷题记 B
    动态规划字符串杂题A:AnimalsandPuzzleB:VanyaandTreasure根号分治。实际上是从\((1,1)\)先找一个\(1\),再找一个\(2\dots\)最后找一个\(p\)然后依次按最短路走过去。我们有两种想法,直接BFS递推得到当前点到所有点的距离或者直接暴力枚举两个层之间的所有......
  • 暑假刷题记 A
    数据结构Ice-creamTycoon平衡树/线段树二分。对于平衡树而言,构造一个函数,求出拿到最便宜的所需数量的ice-cream的价格(利用类似于树上查排名的操作即可),比较该价格与所有钱数的差别即可。对于线段树二分而言,利用数量的单调性,求出对应的节点,然后修改该节点前的所有......
  • 大二暑假第三周博客
    现在是第三周了,我这一周学习了四天,剩下的时候去练车了,可惜还是没有过下面是我这一周的学习内容 这一周因为虽然已经安装好了大部分环境,但是在实际的使用中发现了一些问题首先是在使用过程中原有的工程文件无法打开的问题最开始我下载的是jdk8和jdk20,但是我的文件适配的是jdk......
  • 2023暑假集训记2
    7.7~7.17、7.20NOI模拟+好题分享考试五六次的模拟考试,让我深刻了解到\(\text{NOI}\)的难度,明白自己和真正高手之间的差距,也懂了我自己需要努力的方向。我的代码能力有待提升,可以通过多做不同类型的题让我掌握一些写代码的技巧,规范我的码风,在同时了解自己容易出错、需要特别......