首页 > 其他分享 >newstarctf2023 reverse 题解汇总

newstarctf2023 reverse 题解汇总

时间:2023-12-01 23:34:48浏览次数:39  
标签:newstarctf2023 enc reverse 题解 chr flag ans print ord

newstarctf2023 reverse 题解汇总

week1

easy_RE

die查
无壳 64 直接IDA启动
跟到main函数 找到两部分flag拼起来就行了。
flag{we1c0me_to_rev3rse!!}

ELF

die查
64 ELF IDA启动
稍微读一下
写个py逆一下它的加密就行了
flag{D0_4ou_7now_wha7_ELF_1s?}

import base64
a = "VlxRV2t0II8kX2WPJ15fZ49nWFEnj3V8do8hYy9t"
a = base64.b64decode(a)
#print(a)
ans = ""
for _ in a: 
    now = (ord(chr(_))-16)^0x20
    ans += chr(now)
print(ans)
#flag{D0_4ou_7now_wha7_ELF_1s?}

Segments

die查ELF 64
根据提示直接IDA shift+F7查看段
拼一下
flag{You_ar3_g0od_at_f1nding_ELF_segments_name}

die查
upx壳
脱一下
读一下加密过程写PY开逆
flag{C0ngratu1at10ns0nPa221ngTheF1rstPZGALAXY1eve1}

a = "gmbh|D1ohsbuv2bu21ot1oQb332ohUifG2stuQ[HBMBYZ2fwf2~"
ans = ""
for _ in a:
    nw = chr(ord(_)-1)
    ans += nw
print(ans)
#flag{C0ngratu1at10ns0nPa221ngTheF1rstPZGALAXY1eve1}

Endian

考察小端序
写py逆回去就好了
可能要用到.to_bytes(字节数,大端还是小段)

a = [0x75553A1E, 0x7B583A03, 0x4D58220C, 0x7B50383D, 0x736B3819]
flag = b''
for i in range(len(a)):
    flag += (a[i]^0x12345678).to_bytes(4,'little')
print(flag)
# flag{llittl_Endian_a}

expe

首先文件被改了
对着正常的找找不同修一下
然后开逆加密就行
flag{Y0u_kn0w_what_1s_PE_File_F0rmat}

IDA ctrl+E 导出数据
python range(a,b,-1)实现逆向循环

enc = [0x0A, 0x0C, 0x04, 0x1F, 0x26, 0x6C, 0x43, 0x2D, 0x3C, 0x0C, 
  0x54, 0x4C, 0x24, 0x25, 0x11, 0x06, 0x05, 0x3A, 0x7C, 0x51, 
  0x38, 0x1A, 0x03, 0x0D, 0x01, 0x36, 0x1F, 0x12, 0x26, 0x04, 
  0x68, 0x5D, 0x3F, 0x2D, 0x37, 0x2A, 0x7D]
l = len(enc)
for i in range(l-2,-1,-1):
    enc[i] = enc[i]^i^enc[i+1]
for i in enc:
    print(chr(i),end="")

AndroXor

跟mainactivity
逆一下加密过程就行
flag{3z_And0r1d_X0r_x1x1}

str2 = "happyx3"
cArr = [14,ord('\r'),17,23,2,ord('K'),ord('I'),ord('7'),ord(' '),30,20,
ord('I'),ord('\n'),2,ord('\f'),ord('>'),ord('('),ord('@'),11,ord('\''),
ord('K'),ord('Y'),25,ord('A'),ord('\r')]
ans = ""
for i in range (0, 25):
    charAt = chr(cArr[i]^ord(str2[i%7]))
    ans += charAt
print(ans)
#flag{3z_And0r1d_X0r_x1x1}

lazy_activity

进flagactivity
直接搜就找到了
flag{Act1v1ty_!s_so00oo0o_Impor#an#}

week2

PZthon

py逆向
先进行pyinstxtractor解开exe
然后反汇编得到源码
flag{Y0uMade1tThr0ughT2eSec0ndPZGALAXY1eve1T2at1sC001}

enc = [115,121,116,114,110,76,37,96,88,116,113,112,36,97,65,125,103,37,96,114,125,65,39,112,70,112,118,37,123,113,69,79,82,84,89,84,77,76,36,112,99,112,36,65,39,116,97,36,102,86,37,37,36,104,]
for i in enc:
    print(chr(i^21),end="")
#flag{Y0uMade1tThr0ughT2eSec0ndPZGALAXY1eve1T2at1sC001}

标签:newstarctf2023,enc,reverse,题解,chr,flag,ans,print,ord
From: https://www.cnblogs.com/master-lio/p/17871088.html

相关文章

  • ISCTFpwn的ezpie题解
    目前接触的随机好像都与地址有关,而且还有一个特性也就是只是基址随机,只要有任意一个地址就可以知道其他所有具体地址。(libc和pie保护)这里将通过ezpie这道题介绍绕过pie的一种方式,泄露地址一获取全部地址的方法。本人还不太懂partiallywrite的原理,就不误人子弟了。这里我们看到v5......
  • 【POJ 1144】Network 题解(Tarjan算法求无向图的割点)
    一家电话线公司(TLC)正在建立一个新的电话电缆网络。它们连接由1到N的整数编号的几个位置。没有两个地方的数字相同。这些线路是双向的,总是连接在两个地方,在每一个地方,线路都以电话交换机结束。每个地方都有一个电话交换机。从每个地方可以通过其他地方的线路到达,但不需要直接连接,可......
  • P9879 题解
    blog。找网络流水题写题解/hsh。间隔染色(\(i+j\)分奇偶染不同色)后,所有\(i+j\)为奇数的格子反色,题目的Pattern等价于是\(2\times2\)的全黑或全白格子。然后很自然地想Flow了。每个点分黑白两种状态。如果\((x,y)\)对应的Pattern有机会染成全黑,就连边\(S\xright......
  • 2023ISCTFpwn题目:stack题解
    这是我在这次比赛中遇到最有意思的一题,不仅让我看到了一种有意思的题型,而且让我开始看懂了pwndbg的调试界面。IDA里面是这样的,有直接可以提权的backdoor函数,有read函数,看似有点像ret2system。让我们分析一下这个函数的读入逻辑:首先让你输入一个size值,read会总共分size次读入一个字......
  • C#把listA通过“=”赋值给listB,然后对listA进行clear清空,第二个listB也清空了问题解决
    针对ArrayList赋值到另一个ArrayList的方法ArrayList<String>A=newArrayList<String>();A.add("1");A.add("2");ArrayList<String>B=newArrayList<String>();;B=A;A.clear();A清空后发现B也清空了。此时B对象相当与A对象的引用,而并不是将A对象的值单纯的传递给......
  • CF1705E Mark and Professor Koro 题解
    题意:给定一个长度为$n$$(1\len\le2e5)$的序列,每次可以把两个相等的$a_i$和$a_j$合并为一个$a_i+1$。给定$q$$(1\leq\le2e5)$次修改,每次将$a_k$修改为$l$,求每次操作后合并到无法再合并时出现的最大数。其中,$1\lea_i\le2e5$。......
  • 【ErikTse】2023-Codeforces新手训练营 第六期题解
    A.Wrath题目大意给你一个\(L\)数组和\(n\)个人,第\(i\)个人可以使用威力为\(L_i\)的闪电旋风劈击杀前面\(L_i\)人,问你最后能存活多少人?思路差分。开一个数组来标记当前威力的闪电旋风劈能击杀到的最远的人和使用技能的人,最远击杀的人所在的位置+1,自己的位置-1,这样算前缀和时所......
  • DBeaver连接PostgreSQL后只有默认数据库“postgres”不显示其他数据库的问题解决办法
    我们在使用DBeaver连接PostgreSQL后,发现数据库中只有“postgres”默认数据库,不显示我们自己创建的数据库。1、......
  • CF1896D Ones and Twos 题解
    题意:思路:先考虑不带修:如果长度为$n$的序列$a$中无$1$,当且仅当$2\les\lesum(1,n)$时,一定有解;否则,一定无解。通过$set$维护序列$a$中每个$1$的位置,找到最靠左的$1$的位置$l$以及最靠右的$1$的位置$r$。对于区间$[l,n]$,由......
  • ABC270F 题解
    和博客园一样好的体验思路首先看到花最小代价使得所有点连通,果断转换成最小生成树问题。接下来就要考虑怎么建图,首先陆地就正常连不用说,建机场和港口的代价貌似都是点权,考虑转成边权。因为一个点飞或者划船到另一个点要两重代价,所以若我们想让\(u\)和\(v\)建能飞过去的边,我......