1.小菜一碟

image.png

下载文件判断是apk文件,运行看看:

image.png

看来输入的字符很有可能就是flag,用android killer打开分析一下,搜索关键词“please try again”,定位关键代码:

image.png

看一下java代码:

image.png

image.png

加密算法大概的意思是:首先对输入的字符串进行逆序,然后进行encode()处理,再进行getbase64处理,最后判断是否等于“NzU2ZDJmYzg0ZDA3YTM1NmM4ZjY4ZjcxZmU3NmUxODk=

所以首先base64解码:

image.png

再进行md5破解

image.png

最后进行逆序,获得flag

image.png

2.Classical CrackMe

image.png

image.png

题目要破解注册码,用peid看一下:

image.png

是个C#写的程序,因此用ILSpy分析一下,搜索关键词“注册失败”

image.png

要返回成功,需要a==b,所以flag即为“UENURntFYTV5X0RvX05ldF9DcjRjazNyfQ==”的base64解码:

image.png

3.FindKey

image.png

文件下载下来发现时pyc文件,在线反编译:https://tool.lu/pyc/,得到关键源代码:

image.png

算法大概的意思是,flag的长度为17,然后对flag逆序,每一位ord(flag[i]) + pwda[i] & 255 == lookup[i + pwdb[i]]

知道了算法的意思,就可以直接尝试爆破:

image.png

image.png

4.Smali

image.png

下载下来是个smali文件,利用smali2java工具反编译,得到java代码:

image.png

大概的意思是:首先定义了两个base64为编码字符串,解码后传入decrypt()中处理,两个base64字符串解码后分别为:

[0xb1,0x23,0x67,0xc7,0x55,0x0a,0x6d,0x8a,0xc0,0xd7,0xe3,0x0e,0xad,0xdb,0x43,0x4c]”phrack  ctf 2016”

decrypt()中,对[0xb1,0x23,0x67,0xc7,0x55,0x0a,0x6d,0x8a,0xc0,0xd7,0xe3,0x0e,0xad,0xdb,0x43,0x4c]进行AEC加密,密钥为”phrack  ctf 2016”,模式为"AES/ECB/NoPadding"

编写python脚本:

image.png

5.crackme

image.png

首先用PEID看一下,发现NSPack的壳

image.png

用工具脱壳:

image.png

image.png

运行一下:

image.png

需要猜解flag,拖入IDA

image.png

关键代码:

image.png


其实flag就是byte_402130[v4%16]^dword_402150[v4]

看一下这两个数据:

image.png

image.png

编写脚本:

s1="this_is_not_flag"

s2=[0x12,4, 8, 0x14, 0x24, 0x5C, 0x4A, 0x3D, 0x56, 0x0A, 0x10, 0x67, 0,0x41, 0,1, 0x46, 0x5A, 0x44, 0x42, 0x6E, 0x0C, 0x44, 0x72, 0x0C, 0x0D,0x40, 0x3E, 0x4B, 0x5F, 2, 1, 0x4C, 0x5E, 0x5B, 0x17, 0x6E, 0x0C,0x16, 0x68, 0x5B, 0x12, 2]

print len(s2)

flag=''

for i in range(0,43):

    flag+=chr(ord(s1[i%16])^s2[i])

print flag

image.png

附:下载地址

https://pan.baidu.com/s/1QlO8t_QOuWiOj3pde-nubA

j0pv

源链接

Hacking more

...