-
-
[原创]看雪2019-Q2-第六题-WP
-
发表于: 2019-6-24 10:50 3324
-
可以发现关键,将输入的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
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
看原图
赞赏
雪币:
留言: