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

[原创]看雪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期)

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