新年快乐
只有两个函数,可能加壳了,使用PEID进行脱壳
upx加壳
利用万能脱壳工具进行脱壳
把脱好壳的函数放进ida里面,就可以看到各个函数,查看一下main函数
可以看到这个程序的目的是把str2的长度和内容和你输入的值进行对比,所以很显然HappyNewYear!就是flag
xor
丢入ida
这里可以看到flag的长度是33位,如果输入的值不等于33位,则会失败
可以看到,这个程序主要是讲这个数组里面的相邻两位进行xor比较
看了网上大佬的博客,发现可以直接用它的字符去进行操作
s = ['f',10,'k',12,'w&O.@',17,'x',13,'Z;U',17,'p',25,'F',31,'v"M#D',14,'g',6,'h',15,'G2O',0]
ss = 'fkw&O.@xZ;UpFv"M#DghG2O'
x = "f"
a = [102, 10, 107, 12, 119, 38, 79, 46, 64, 17, 120, 13, 90, 59, 85, 17, 112, 25, 70, 31, 118, 34, 77, 35, 68, 14, 103, 6, 104, 15, 71, 50, 79 ,0]
for i in range(1,len(a)):
x += chr(a[i]^a[i-1])
print(x)
参考博客:https://blog.csdn.net/weixin_47158947/article/details/107354379
helloworld
应该是刚入门Android需要知道的简单写法
先用apkide进行反编译,依次查看smali>com>example>helloworld
查看编写的文件,就可以找到flag