某Hero联盟 16字超长ID软件分析

1、窗口检测
853512_NWPCQVPQEM389EH
程序加载后会检测qq群聊窗口是否为作者qq群,如果不存在该窗口就会提示 "失败"
853512_2RMP8DRYBQCC6RC
如果我们想回跟就会遇到这玩意
853512_32VZBH5CTMHPM6R
那么就只能通过api绕过了,经检测作者使用FindWindowW进行检测,断下后如图,将返回值修改为非0的值即可绕过
853512_DG9F5FWDQYWPKYE
853512_KPPJGJ8Q45MVTTN 853512_24XJ3RVE6PEGVXH

2、文件操作
点击修改文件,提示"文件或写入失败",因为本机上不存在Hero联盟,所以先得到其要写的文件。
既然窗口检测使用的W版API,那么很大程度上该版本按W版编的,直接MessageBoxW断点,成功断下后如图
853512_ZP3GNSPTS7PJBSW
相信细心的小伙伴已经发现堆栈中存在一个路径字符串引用地址"C++:UsersINT3DesktopLeagueClientPluginsrcp-fe-lol-navigationassets1.wad"
通过内存窗口窗口发现周围还存在一个同样的字符串
"C:UsersINT3DesktopLeagueClientPluginsrcp-fe-lol-navigationassets.wad" !
853512_2WB24Z5JZPMUZX7

那么按常规操作创建相同的文件即可
853512_2P9NYW5X9SPFCUF

再次点击 修改文件,出现"已经修改等提示子样",且文件并未被动过。
853512_4BRS52A3SQ3BJE2
当我们想回跟看看这个程序到底在什么地方判断的时侯,发现代码是jmp过来的...gg
该上IDA了,通过回跟发现了如下代码,发现会对比这两个文件进行一系列的操作,至于函数里面做了什么事我是看的莫名其妙....且下面的判断针对于assets.wad文件又进行了一系列操作。无论如何 这东西是先验证assets.wad文件,再验证assets1.wad,那么我们一个一个删除进行结果测试,最后发现如果没有assets1.wad就会提示修改成功,并且assets.wad会被复制为assets1.wad,会多出来一个新的asset.wad 大小为30m左右
853512_JQ2CMNMV6D7QVRS
853512_Q6HYPBWWJYFE2N2
剩下的就是拿游戏原始文件和新文件对比一下,看修改了那些,因为电脑上没有就不进行这一步操作了

样本太大无法上传,这个是作者的视频https://www.bilibili.com/video/BV14A411H7iA 剩下的懂的都懂.

本文转载自看雪论坛,原文地址:https://bbs.pediy.com/thread-265459.htm

标签