-
-
[原创]看雪2019-Q2-第六题-WP
-
发表于: 2019-6-24 10:50 3313
-
可以发现关键,将输入的sn进行base64编码,然后与字符串"!NGV%,$h1f4S3%2P(hkQ94=="比对,如果正确返回success
0x00 首先还是运行程序
0x01 分析
1.丢入ida,F5查看main函数源码
可以发现关键,将输入的sn进行base64编码,然后与字符串"!NGV%,$h1f4S3%2P(hkQ94=="比对,如果正确返回success
根据字符串后缀“==”可以看出像是base64编码后的字符串,但是有“!”,"%",“(”等字符,可以猜测字符串编码表可能有改动
2. shift + F12 查看字符串
可以找到一个类似编码表的字符串,通过查看调用,可以马上找到编码表位置
可以发现在_charEncrypt函数里
也可以从base64_encode函数里根据函数名提示发现编码表函数 charEncrypt
3.charEncrypt函数,这里对base64的编码做了变形转换
写个脚本跑一跑,得到变形后的编码表:
#!/usr/bin/python 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) #45678GF,-./0123iBA!"#$%&'()*j9:bcdefghEDC+ZYXWVUTSRQPONMLKJIHkwy
#!/usr/bin/python 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) #45678GF,-./0123iBA!"#$%&'()*j9:bcdefghEDC+ZYXWVUTSRQPONMLKJIHkwy
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
看原图
赞赏
雪币:
留言: