今天发现Epic Pen版本更新到了3.7.31.0,之前的调试补丁不可使用,今天着手在分析下,记录下调试过程。
0x01、信息收集
将主程序载入die查询
- 主程序未进行加壳,使用 .NET(v4.0.30319)框架
运行程序,进行信息收集
- 激活操作经测试分析-激活码首位英文字符存在限制,允许{a、b、c、d、e、f、}输入,其它字符不允许。
正确激活码序列:6组 每组4个单位 {eeee-eeee-eeee-eeee-eeee-eeee}
- 拦截激活请求响应信息
- 关键字:激活失败 无效的激活码
- 响应关键字:
language
{
"licenceInfo" : null,
"result" : "invalidActivationCode"
}
- 激活码验证请求信息
language
https://licencing.epic-pen.com/verifyActivation?deviceId=a6559da7b41824e7d75c93c718e604dc&activationCode=eeee-eeee-eeee-eeee-eeee-eeee
- 也可根据该请求进行爆破,但这篇文章主讲反调试,就不进行爆破了
0x02、验证调试
- 初步载入调试器dnspy
版本信息:3.7.31.0
目标框架:.NET Framework 4.7.2 - 展开类
- 可疑,点击进入分析
找到许可并知道程序有三个授权类型:Personal (个人)Acedemic(教育)Business (商业) - 关键字搜索
- 看到一个判断
- 提取关键信息
- valid Activation Code:有效的激活码
- valid Activation Code But Too Many Devices:有效的激活码但设备太多
-
invalid ActivationCode:无效的激活码
-
加个断点,进行调试,使其激活码有效
- 运行程序,输入验证码进行激活,看程序是否成功被断下
- 在激活码验证过程中,程序成功被断下,继续分析
- 关键字提取
language
"{"result":"invalidActivationCode","licenceInfo":null}"- 修改变量信息
language
原数据:"{"result":"invalidActivationCode","licenceInfo":null}"
language
修改数据:"{"result":"validActivationCode","licenceInfo":null}"
- 发现licenceInfo信息不知道如何填写,继续下断点运行分析
- 运行之前在确认下变量值是否修改
- 没效果,分析代码
知道了licenceInfo信息保护版本信息[p、b、a],licenceeName
- 根据这些规则重新编写
language
"{"result":"validActivationCode","licenceInfo":{"licenceType":"b","licenceeName":"梦幻的彼岸"}}"
- 运行程序,查看这次的调试效果
这次有信息,判断成功断下,继续运行程序
调试成功,已拿到商业许可证,授权人信息DIY成功
0x03、修改程序
修改源代码,使其输入非正确激活码,达到激活效果
直接修改IL指令
- 发现被调试信息被保护,换个方法
使用Fiddler 进行数据劫持
- 劫持信息编写
载入劫持信息,进行劫持
- 成功劫持
题目链接 https://gslab.qq.com/html/competition/2020/race-pre.htm RIng3 题目 winmine.exe是一个扫雷游戏程序,winmine.dmp是该程序的一份进程dump, 在这份dump中,winm…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论