能力值:
( LV4,RANK:140 )
2 楼
AAA{rev_is_easy}
先进行数组内容的互换
Name[1] <=> Name[4]
Name[2] <=> Name[8]
Name[12] <=> Name[3]
Name[6] <=> Name[9]
Name[7] <=> Name[13]
Name[11] <=> Name[14]
之后执行
for(int i = 0; i < 16; i++) { if(Name[i] - 'A' > 25) if(Name[i] - 'a' > 25) continue; else { if(Name[i] + i > 'Z' || Name[i] + i > 'z') Name[i] = Name[i] + i - 26; else Name[i] += i; } }
最后比较是否等于 AskdEjyzIe_j{_s}
能力值:
( LV2,RANK:10 )
3 楼
不用看40274f吧,输入字符串后会有几个比较和跳转,你找“your flag is not right”附近的跳转,跳转条件jnz改成je就可以了
能力值:
( LV2,RANK:10 )
4 楼
Lnairan
AAA{rev_is_easy}先进行数组内容的互换Name[1] <=> Name[4]Name[2] <=> Name[8]Name[12] ...
多谢hhh我再仔细研究研究!
能力值:
( LV2,RANK:10 )
5 楼
StoneArt
不用看40274f吧,输入字符串后会有几个比较和跳转,你找“your flag is not right”附近的跳转,跳转条件jnz改成je就可以了
那个跳转是行了,但目的是要搞出来那个flag...
能力值:
(RANK:1324 )
6 楼
s='AskdEjyzIe_j{_s}' sn=[] for i in range(len(s)): if(s[i].isalpha()): t=chr(ord(s[i])-i) if(t.isalpha()): sn.append(t) else: sn.append(chr(ord(t)+26)) else: sn.append(s[i]) sn[1],sn[4]=sn[4],sn[1] sn[2],sn[8]=sn[8],sn[2] sn[3],sn[12]=sn[12],sn[3] sn[6],sn[9]=sn[9],sn[6] sn[7],sn[13]=sn[13],sn[7] sn[11],sn[14]=sn[14],sn[11] sn=''.join(sn) print sn
能力值:
( LV4,RANK:50 )
7 楼
Lnairan
AAA{rev_is_easy}先进行数组内容的互换Name[1] <=> Name[4]Name[2] <=> Name[8]Name[12] ...
求问一下那个交换我倒是看懂了,后面那部分的话我看了好久还是琢磨不清,请问是我需要提高下汇编语言能力还是说这个也有一些工具辅助下呢?。。
能力值:
( LV4,RANK:50 )
8 楼
samohyes
求问一下那个交换我倒是看懂了,后面那部分的话我看了好久还是琢磨不清,请问是我需要提高下汇编语言能力还是说这个也有一些工具辅助下呢?。。
谢谢~那个不知道这个逆向是直接看汇编看出来的嘛?。。
能力值:
( LV4,RANK:140 )
9 楼
samohyes
谢谢~那个不知道这个逆向是直接看汇编看出来的嘛?。。
刚才用IDA看了一下,用IDA的F5可以搞定。我觉得看汇编代码的能力还是比较重要的,这个例子也比较简单还是多练习一下比较好
能力值:
( LV4,RANK:50 )
10 楼
Lnairan
刚才用IDA看了一下,用IDA的F5可以搞定。我觉得看汇编代码的能力还是比较重要的,这个例子也比较简单还是多练习一下比较好
好的好的,谢谢了~