-
-
[原创]看雪2019-Q2-第六题-WP
-
发表于:
2019-6-24 10:50
3444
-
可以发现关键,将输入的sn进行base64编码,然后与字符串"!NGV%,$h1f4S3%2P(hkQ94=="比对,如果正确返回success

1.丢入ida,F5查看main函数源码
可以发现关键,将输入的sn进行base64编码,然后与字符串"!NGV%,$h1f4S3%2P(hkQ94=="比对,如果正确返回success
根据字符串后缀“==”可以看出像是base64编码后的字符串,但是有“!”,"%",“(”等字符,可以猜测字符串编码表可能有改动
2. shift + F12 查看字符串
可以找到一个类似编码表的字符串,通过查看调用,可以马上找到编码表位置
可以发现在_charEncrypt函数里
也可以从base64_encode函数里根据函数名提示发现编码表函数 charEncrypt
3.charEncrypt函数,这里对base64的编码做了变形转换
写个脚本跑一跑,得到变形后的编码表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | str1 = 'tuvwxTUlmnopqrs7YZabcdefghij8yz0123456VWXkABCDEFGHIJKLMNOPQRS9+/'
str2 = ''
for i in str1:
x = ord (i)
if x = = 43 :
str2 = str2 + chr ( 119 )
elif x = = 47 :
str2 = str2 + chr ( 121 )
elif x > 47 and x < = 57 :
str2 = str2 + chr (x + 50 )
elif x > 96 and x < = 122 :
str2 = str2 + chr (x - 64 )
elif x > 64 and x < = 90 :
str2 = str2 + chr ( 155 - x)
print (str2)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | str1 = 'tuvwxTUlmnopqrs7YZabcdefghij8yz0123456VWXkABCDEFGHIJKLMNOPQRS9+/'
str2 = ''
for i in str1:
x = ord (i)
if x = = 43 :
str2 = str2 + chr ( 119 )
elif x = = 47 :
str2 = str2 + chr ( 121 )
elif x > 47 and x < = 57 :
str2 = str2 + chr (x + 50 )
elif x > 96 and x < = 122 :
str2 = str2 + chr (x - 64 )
elif x > 64 and x < = 90 :
str2 = str2 + chr ( 155 - x)
print (str2)
|
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课