绕过某云网络验证思路分析

经过该云网络验证客服允许的情况下 , 我们注册并购买了测试软件位 , 并将一个未加壳的exe可执行文件上传到了云端加密系统 , 接下来我对该验证的免费加密系统进行了简单的分析 。
绕过某云网络验证思路分析
文章图片
0x00文件分析
加密类型
从该云端系统下载加密完毕后的程序后 , 发现文件的体积明显增大7倍左右 。 从官网的介绍上来看 , 虚拟引擎应该借鉴了VMP3.X , 因为我的调试环境中 , 3.X以下的可以直接过滤掉 。
代码保护比较PE信息
通过ExeinfoPE文件可以很清楚地看到该加密后程序的PE信息:
绕过某云网络验证思路分析
文章图片
文件PE信息
绕过某云网络验证思路分析
文章图片
区段信息
经过加密后 , 区段基本处于不可读阶段 , 所以我这里还是决定选择了动态调试 , 希望能够通过运行查看是否能够解密和区段
0x01猜想验证方式
由于该验证使用了 , 并且对于VM虚拟机和都有检测 , 这让我想起了以前分析过的一款倒闭的验证:
如果视频无法播放 , 点击这里试试
当时这款验证也是使用了VMP , 不过验证的地址是固定的 , 特征保持不变 , 并且在一般的验证上存在逻辑问题 , 可以在某处将直接置1 , 即可跳过无条件跳过验证 , 并且释放源文件 。
我猜测此次验证所使用的方法也是大同小异 , 不过特征可能不会不同 。
绕过某云网络验证思路分析
文章图片
劣质分析图
0x02动态调试
配置好OD后 , 运行该验证 , 成功解码基址 , 并且得到了解码后文件的完整数据段 , 由此成功证实了我上面的猜想 , 这种一键加验证的相当于就是套了个验证壳 , 只要过掉登录验证后 , 就不会有其他心跳验证 。
绕过某云网络验证思路分析
文章图片
寻找验证CALL
对于这种自写验证壳的验证弹窗 , 通常不会调用 , 而是自写一个信息框提示窗口 , 常用bp指令为或 , 通过在这两个地址下断点 , 在单步回到验证 。
单步来到验证壳段后 , 尝试搜索Unicode和ASCII关键字符 , 结果如下:
绕过某云网络验证思路分析
文章图片
中文字符
从这里可以得知 , 该验证是由易语言(EasyLanguage)编写 , 并且使用VMP引擎变异虚拟加密 。
在断点后 , 我们点击登陆按钮 , 成功断下 , 并且进行单步跟踪 , 并且在处断点跳转 , 最终跟踪到了验证部分:
绕过某云网络验证思路分析
文章图片
验证部分
为了验证猜想正确 , 我们在该头部断点 , 并且重新点击登陆 , 结果成功断下 , 我们再次进行单步跟踪 , 查看解码后的数据结果 。
单步跟踪后 , 可以发现程序获取了本机的内网ip和网关:
绕过某云网络验证思路分析
文章图片
在一个关键偏移CALL , 出现了延迟 , 并且返回了登录的明文状态码 , 可以很明确地得知该CALL为验证登录 , 寄存器和数据地址中也可以很明确地看到返回的内容:
绕过某云网络验证思路分析
文章图片
Json的相应相应内容
所以这里又给出了一种方法:通过截取数据包 , 修改返回的JSON相应内容 , 达到登录效果
JSON内容