码迷,mamicode.com
首页 > 其他好文 > 详细

EV剪辑分析

时间:2021-03-29 12:35:14      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:全局   vip   nbsp   inf   level   string   http   load   check   

EV剪辑分析

 技术图片

点击‘充值开通VIP’打开网页http://svip.ieway.cn/personalPay?product_type=2000

 技术图片

字符串搜索定位到

技术图片

 

 技术图片

调用栈

 技术图片

 

 

根据调用栈回溯到上层调用66A3B190

ZN14OutVideoDialog8check_okEv处理‘导出’按钮

 技术图片

 

 

这里有创建消息框,点击‘充值开通VIP’对应的处理:

技术图片

 

 

那么上层if则应该是判断是否为VIP:

 技术图片

 

 

看到了明晃晃的“UserLevel”,调试获得此方法位于evBridge492.dll  67A0CE60;推测为通过获取某全局map中UserLevel的值

 技术图片

 

 

调试发现其值为“m4mdQA==”,后面的方法则应该是对其解密,evbridge492.67A0C860

 技术图片

 

 

ZN2bg5Value4readEPKc方法负责解析xor后的数据

 技术图片

 

 

base64encode str: m4mdQA==

base64decode data: 0x9b, 0x89, 0x9d, 0x40

xordecrypto data: [i]0

最终this偏移+8处设置为UserLevel的值,0;后续与1比较,小于等于1则会弹出提示框,视频带水印。

 技术图片

 

 

测试将此处比较nop掉,没有提示框,但无法去除水印,推测后续仍会检测UserLevel,尝试在必经之路evbridge492.67A0C860解密方法处下断,回溯。

 

在第二次调用evbridge492.67A0C860解密方法时,在上层发现调用

ZN3eva16GraphicsBaseView12setWatermarkEbRK7QStringd

 技术图片

 

 

此处patch修改eax值为0则可实现去水印。

 技术图片

 

 

同样的方法跟踪‘高级’按钮

 技术图片

此处patch修改eax值为1,则可实现高级设置。

 

 

修改这两处虽然可以使用,但不够优雅,向上寻找userlevel设置的地方才可一劳永逸;

Userlevel的值经过base64编码,以此为突破点跟踪;

evbridge492.67A0C860解密方法中有调用base64解码,转到此类的虚表,在其周围寻找编码函数。同理找到xor加密的函数。

 技术图片

 

 

通过下断,重启程序,回溯来到TimeView.dll 66A4F7D0 _ZN8AsModule4initEv

 技术图片

 

 

evbridge492.67A0C9C0:

 技术图片

 

 

evbridge492._ZNK2bg5Value5writeEv;设置userlevel的数据格式

 技术图片

 

 

Patch设置userlevel值大于1则可实现vip功能。

 技术图片

 

 

need str: [i]4

xorencrypto data: 0x9b, 0x89, 0x9d, 0x44

base64encode: b‘m4mdRA==‘

 技术图片

 

 技术图片

 

EV剪辑分析

标签:全局   vip   nbsp   inf   level   string   http   load   check   

原文地址:https://www.cnblogs.com/DirWang/p/14586399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!