首页
社区
课程
招聘
[原创]看雪2019-Q2-第六题-WP
发表于: 2019-6-24 10:50 3313

[原创]看雪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直播授课

收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//