879154904 发表于 2018-4-27 11:22

2018 腾讯TP游戏安全技术竞赛-资格赛 标准版

一个base64硬是没看出来....
还有就是标准版这个算t1-t5的过程已经是非常不友好了,
进阶版还有个两倍这么长的... 等待大佬的分析我看看结果就行了{:1_908:}


## 1. 调试分析
x32dbg载入,运行命令 bp GetDlgItem下断点,输入任意用户名和密码后点击Go


<!--more-->


程序顺利断下,可以看到程序使用SendMessage方式获取UserName和RegCode,并且判断是标准版or进阶版
!
之后,程序在call 0x00B25510之内进行详细的验证,将结果显示在Label上
!

进入func_verify函数,可以看到首先程序对UserName格式进行检查
!
然后检查UserName长度是否等于39
!
将输入的UserName转换大写
!
将输入的UserName末尾添加#字符并用#分割, 判断分割之后数目
!

将UserName分割后的得到的vector进行运算, 得到t1-t5
!
算法具体如下
!


用户名部分处理完毕, 进入RegCode处理部分
首先将RegCode进行一个类base64的解码
!
具体算法如下
!


判断解码后的RegCode的24-27位是否为’2018’, 28-31是否为0, 因此可以知道解码后至少为32位,
!
解码操作类似Base64, 四字节合并为三字节, 因此 RegCode 长度根据Base64算法
33/3 * 4 = 44位 
最后的验证函数, 将UserName运算得到的t1-t5与解码后的RegCode进行运算
!

这实际是一个三元方程组, 需要根据t1-t5解出RegCode, 验证以及解密算法如下:
!

## 2. 算法流程
通过对验证流程的分析, 注册码验证流程如下
输入的UserName -> t1 t2 t3 t4 t5
输入的RegCode -> Base64(伪)解码得到32位 ->
a) 验证25-32 位是否为 “2018 x0x0x0x0”
b) 剩余24位看做三个int64整数, 与t1-t5运算

## 3. 程序实现
a) 输入合法用户名(39位) , 4位一组, “#”号分割, 计算出t1-t5,
b) 解方程算出xyz (3*int64, 共24位),
!
c) 实现此程序中Base64的Encode部分, 将xyz+2018+0编码, 得到RegCode
!


: https://blog.his.cat/usr/uploads/2018/04/1126898949.png
: https://blog.his.cat/usr/uploads/2018/04/3025393864.png
: https://blog.his.cat/usr/uploads/2018/04/391982894.png
: https://blog.his.cat/usr/uploads/2018/04/3451515461.png
: https://blog.his.cat/usr/uploads/2018/04/3135234825.png
: https://blog.his.cat/usr/uploads/2018/04/2812880400.png
: https://blog.his.cat/usr/uploads/2018/04/2117339514.png
: https://blog.his.cat/usr/uploads/2018/04/462425374.png
: https://blog.his.cat/usr/uploads/2018/04/391100444.png
: https://blog.his.cat/usr/uploads/2018/04/40719681.png
: https://blog.his.cat/usr/uploads/2018/04/2728202346.png
: https://blog.his.cat/usr/uploads/2018/04/410367591.png
: https://blog.his.cat/usr/uploads/2018/04/2507598221.png
: https://blog.his.cat/usr/uploads/2018/04/1927961582.png
: https://blog.his.cat/usr/uploads/2018/04/1741255144.png

whyida 发表于 2018-4-28 11:55

卡在
.text:00404FCB               mov   ecx, ebx
.text:00404FCD               mov   eax,
.text:00404FD0               sub   ecx, eax
.text:00404FD2               sub   ecx, 0C0h
.text:00404FD8               cmp   ecx, 18h
.text:00404FDB               jnb   short loc_405020
.text:00404FDD               cmp   eax, ebx
.text:00404FDF               jz      short loc_40501C

whyida 发表于 2018-4-28 12:11

晓我琴宝贝 发表于 2018-4-28 07:54
求楼主的配色。。。

单独x64dbg主题和配色



casser 发表于 2018-4-27 22:02

看不懂。。。

gunxsword 发表于 2018-4-27 22:14

这个我也看了,只弄到转换成大写那里,就没有继续了!楼主威武!

晓我琴宝贝 发表于 2018-4-28 07:54

求楼主的配色。。。;www

qqwwerty12 发表于 2018-4-28 12:19

不错 不错 厉害

晓我琴宝贝 发表于 2018-4-29 13:44

whyida 发表于 2018-4-28 12:11
单独x64dbg主题和配色

3Q谢谢啦

879154904 发表于 2018-5-1 21:52

晓我琴宝贝 发表于 2018-4-28 07:54
求楼主的配色。。。

配色论坛直接搜x64dbg就可以啦, 主题+插件+配色都带了

晓我琴宝贝 发表于 2018-5-2 10:02

879154904 发表于 2018-5-1 21:52
配色论坛直接搜x64dbg就可以啦, 主题+插件+配色都带了

3Q谢谢啦
页: [1] 2
查看完整版本: 2018 腾讯TP游戏安全技术竞赛-资格赛 标准版