吾爱扣扣 发表于 2014-3-9 13:11

LOLLHIT破解初探

本帖最后由 吾爱扣扣 于 2014-3-9 14:06 编辑

【文章标题】: LOLLHIT破解初探
【文章作者】: 吾爱扣扣
【软件名称】: LOLLHIT
【下载地址】: 自己搜索下载
【加壳方式】: VMP
【编写语言】: VC++
【使用工具】: OD,DIE,EXEinfoPE
【操作平台】: Win7
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一直很喜欢这款LOL辅助工具,用@blmk 的话来说用了之后感觉自己跟职业选手一样NB。。

废话不多说,首先从官网下载解压就得到一个名为LLHit.exe的文件。一般的辅助都会通过向游戏注入自己的dll,从而提升权限,所以LLHit.exe内部显然隐藏玄机。

用DIE和EXEinfoPE查壳均显示为VMP加密。





由于我是老爷机,直接开LOL调试会很卡,于是我用E模拟了一个客户端。OD载入LLHit.exe,直接F9在SOD的护航下顺利运行,下好操作文件相关的API断点,他注入肯定得先释放到某处(这里注意:最好先运行再下断点,不然容易被检测!)




然后借用@blmk 提供的王者版帐号成功登录后断下,在栈中发现

048FE644   766AE8DF/CALL to CreateFileW from kernel32.766AE8DA
048FE648   003244C0|FileName = "c:\program files\腾讯游戏\英雄联盟\Game\HID.dll"
048FE64C   40000000|Access = GENERIC_WRITE
048FE650   00000000|ShareMode = 0
048FE654   048FE6CC|pSecurity = 048FE6CC
048FE658   00000002|Mode = CREATE_ALWAYS
048FE65C   00000080|Attributes = NORMAL
048FE660   00000000\hTemplateFile = NULL

于是F9让他写出HID.dll,赶紧到c:\program files\腾讯游戏\英雄联盟\Game\处把HID.dll复制了一份到桌面,接着F9有发现栈中出现


048FDB90   766AE8DF/CALL to CreateFileW from kernel32.766AE8DA
048FDB94   048FE0DC|FileName = "c:\program files\腾讯游戏\英雄联盟\Game\LLHit.tmp"
048FDB98   80000000|Access = GENERIC_READ
048FDB9C   00000003|ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
048FDBA0   00000000|pSecurity = NULL
048FDBA4   00000003|Mode = OPEN_EXISTING
048FDBA8   00000080|Attributes = NORMAL
048FDBAC   00000000\hTemplateFile = NULL



于是乎又F9让他写出LLHit.tmp,同样复制一份到桌面。继续F9直到不再被断下。提示:tmp是临时数据文件的后缀


Alt+E发现LLHit.tmp被LLHit.exe加载了。于是我右键点击CPU中显示代码。然后右键查找字符串发现关键!


60BD72F7   mov eax,60C0BEF0                        ON/OFF | ON/OFF SUPPORT ONLY | ON/OFF CLEAN MODE | ON/OFF SPELLBOT | AUTO ADVBOT
60BD7304   mov eax,60C0BF6C                        ON/OFF | SEMI LAST HIT | AUTO LAST HIT
60BD7345   push 60C0BFA4                           enable
60BD7360   push 60C0BFAC                           enable
60BD73D7   push 60C0BFB4                           enable
60BD7431   mov eax,60C0BFBC                         - ON       //这里肯定是在游戏中的提示啦
60BD743B   mov eax,60C0BFD0                         - OFF
60BD7483   push 60C0BFE8                           support_only
60BD74A2   push 60C0BFF8                           support_only
60BD751A   push 60C0C008                           support_only
60BD7574   mov eax,60C0C018                         - ON
60BD757E   mov eax,60C0C02C                         - OFF
60BD75C6   push 60C0C044                           spell_bot
60BD75E5   push 60C0C050                           spell_bot
60BD765D   push 60C0C05C                           spell_bot
60BD76B7   mov eax,60C0C068                         - ON
60BD76C1   mov eax,60C0C078                         - OFF
60BD771C   push 60C0C08C                           crit_lock
60BD775E   push 60C0C098                           crit_lock
60BD7792   push 60C0C0A4                           crit_lock
60BD77CB   mov eax,60C0C0B0                         - OFF
60BD77D5   push 60C0C0C4                           crit_lock
60BD780F   mov eax,60C0C0D0                         - HARD LOCK
60BD7819   push 60C0C0E8                           crit_lock
60BD7853   mov eax,60C0C0F4                         - ONE TIMES
60BD785D   push 60C0C10C                           crit_lock
60BD7897   mov eax,60C0C118                         - TWO TIMES
60BD789E   push 60C0C130                           crit_lock
60BD78D3   mov eax,60C0C13C                         - THREE TIMES
60BD7924   push 60C0C158                           clean_mode
60BD796B   push 60C0C164                            - ON
60BD7995   push 60C0C178                           clean_mode
60BD79C8   push 60C0C184                            - OFF



60BCDD95   push 60C0B480                           Akali
60BCDDEB   push 60C0B488                           Amumu //这些都是游戏中的人物名字
60BCDE41   push 60C0B490                           Annie
60BCDE97   push 60C0B498                           Ashe
60BCDEED   push 60C0B4A0                           Cassiopeia
60BCDF43   push 60C0B4AC                           Corki
60BCDF99   push 60C0B4B4                           Darius
60BCDFEF   push 60C0B4BC                           Draven
60BCE045   push 60C0B4C4                           Fiora
60BCE09B   push 60C0B4CC                           Fizz
60BCE0F1   push 60C0B4D4                           Galio
60BCE147   push 60C0B4DC                           Gangplank
60BCE19D   push 60C0B4E8                           Gragas
60BCE1F3   push 60C0B4F0                           Hecarim
60BCE245   push 60C0B4F8                           Irelia
60BCE297   push 60C0B500                           JarvanIV
60BCE2ED   push 60C0B50C                           Jax
60BCE343   push 60C0B510                           Jayce
60BCE399   push 60C0B518                           Kassadin
60BCE3EF   push 60C0B524                           Katarina
60BCE445   push 60C0B530                           Kayle
60BCE49B   push 60C0B538                           Kennen
60BCE4F1   push 60C0B540                           KhaZix
60BCE547   push 60C0B548                           KogMaw
60BCE59D   push 60C0B550                           LeeSin
60BCE5F3   push 60C0B558                           Lucian
60BCE649   push 60C0B560                           Malphite
60BCE69F   push 60C0B56C                           Maokai
60BCE6F5   push 60C0B574                           MasterYi
60BCE74B   push 60C0B580                           MissFortune
60BCE7A1   push 60C0B58C                           Mordekaiser
60BCE7F7   push 60C0B598                           Morgana
60BCE84D   push 60C0B5A0                           Nami
60BCE8A3   push 60C0B5A8                           Nasus
60BCE8F9   push 60C0B5B0                           Nautilus
60BCE94F   push 60C0B5BC                           Nidalee
60BCE9A5   push 60C0B5C4                           Nocturne
60BCE9FB   push 60C0B5D0                           Olaf
60BCEA51   push 60C0B5D8                           Orianna
60BCEAA7   push 60C0B5E0                           Pantheon
60BCEAFD   push 60C0B5EC                           Poppy
60BCEB53   push 60C0B5F4                           Quinn
60BCEBA9   push 60C0B5FC                           Renekton
60BCEBFF   push 60C0B608                           Rengar
60BCEC55   push 60C0B610                           Rumble
60BCECAB   push 60C0B618                           Sejuani
60BCED01   push 60C0B620                           Shaco
60BCED57   push 60C0B628                           Shen
60BCEDAD   push 60C0B630                           Shyvana
60BCEE01   push 60C0B638                           Singed
60BCEE4C   push 60C0B640                           Sivir
60BCEE97   push 60C0B648                           Sona
60BCEEE2   push 60C0B650                           Talon
60BCEF2D   push 60C0B658                           Teemo
60BCEF78   push 60C0B660                           Tristana
60BCEFC3   push 60C0B66C                           Trundle
60BCF00E   push 60C0B674                           Tryndamere
60BCF059   push 60C0B680                           TwistedFate
60BCF0A4   push 60C0B68C                           Twitch
60BCF0EF   push 60C0B694                           Udyr
60BCF13A   push 60C0B69C                           Urgot
60BCF185   push 60C0B6A4                           Varus
60BCF1D0   push 60C0B6AC                           Vayne
60BCF21B   push 60C0B6B4                           Vi
60BCF266   push 60C0B6B8                           Vladimir
60BCF2B1   push 60C0B6C4                           Volibear
60BCF2FC   push 60C0B6D0                           Warwick
60BCF347   push 60C0B6D8                           Wukong
60BCF392   push 60C0B6E0                           XinZhao
60BCF3DD   push 60C0B6E8                           Zac
60BCF428   push 60C0B6EC                           Zed
60BCF473   push 60C0B6F0                           Ziggs
60BCF584   mov eax,dword ptr ds:         淬*FK展\吕`
60BCF5B6   push 60C0B994                           Ahri
60BCF5FF   push 60C0B99C                           Annie
60BCF655   push 60C0B9A4                           Ashe
60BCF6AB   push 60C0B9AC                           Caitlyn
60BCF701   push 60C0B9B4                           Cassiopeia
60BCF757   push 60C0B9C0                           Corki
60BCF7AD   push 60C0B9C8                           Draven
60BCF803   push 60C0B9D0                           Elise
60BCF859   push 60C0B9D8                           Ezreal
60BCF8AF   push 60C0B9E0                           Graves
60BCF905   push 60C0B9E8                           JarvanIV
60BCF95B   push 60C0B9F4                           Karthus
60BCF9B1   push 60C0B9FC                           Lux
60BCFA07   push 60C0BA00                           MissFortune


用C32打开LLHit.exe发现可PE头,于是查壳显示为VMP。然后又查了HID.dll的壳发现是UPX,所以先从他入手。

用小生的UPX静态脱壳机脱掉壳后提示有重定位,我们不管它,OD载入HID.dll,发现了更关键的一处!


00203528 > $55            push ebp
00203529   .8BEC          mov ebp,esp
0020352B   .83C4 C4       add esp,-0x3C
0020352E   .B8 F8342000   mov eax,002034F8
00203533   .E8 A0FEFFFF   call 002033D8
00203538   .68 48352000   push 00203548      ; /FileName = "LLHit.tmp"                   //他把LLHit.tmp当作dll用LoadLibrary函数加载了!
0020353D   .E8 4EFFFFFF   call <jmp.&KERNEL32.LoadLibraryA>      ; \LoadLibraryA
00203542   .E8 3DF9FFFF   call 00202E84
00203547   .004C4C 48   add byte ptr ss:,cl
0020354B   .69742E 74 6D7>imul esi,dword ptr ds:,0x7>
00203553   .0000          add byte ptr ds:,al
00203555   .0000          add byte ptr ds:,al
00203557   .0000          add byte ptr ds:,al
00203559   .0000          add byte ptr ds:,al



也就是说,LLHit.tmp不是什么临时数据文件,其根本就是一个加了VMP的DLL,而HID.dll则是为LLHit.tmp打掩护的工具而已!哪个文件是这款辅助的核心从加的壳就能看出来。

LLHit.tmp加的是VMP,而HID.dll却是UPX。再加上从LLHit.tmp中搜索到的字符串,很明显LLHit.tmp才是核心文件。


至此,初探完毕。 有兴趣的朋友可以IDA一下上述文件。。。。 真心很感谢@blmk 许多细节都是他发现的。
---------------------------------------------------------------------------------
感谢 @飘在未来 的指点,可是如果说HID.dll是LOL的文件那为何我脱壳后载入OD他显示的是加载LLHit.tmp呢?

--------------------------------------------------------------------------------
【版权声明】: 本文原创于吾爱扣扣, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2014年03月09日 12:30:35



blmk 发表于 2014-3-9 19:51

60BD72F7   mov eax,60C0BEF0                        ON/OFF | ON/OFF SUPPORT ONLY | ON/OFF CLEAN MODE | ON/OFF SPELLBOT | AUTO ADVBOT   王者版

60BD7304   mov eax,60C0BF6C                        ON/OFF | SEMI LAST HIT | AUTO LAST HIT普通版!

飘在未来 发表于 2014-3-9 15:19

我想说的是HID.DLL是游戏会自动加载的自己写一个HID.DLL就能让游戏自动加载你的DLL!{:1_925:}

吾爱扣扣 发表于 2014-3-9 13:12

本帖最后由 吾爱扣扣 于 2014-3-9 14:07 编辑

好累,写文章真不容易 @飘在未来 主帖已更新,向您提问

D13 发表于 2014-3-9 13:13

感谢KK大大

876990249 发表于 2014-3-9 13:21

不错。支持原创~~

红茶 发表于 2014-3-9 13:29

我就是看看

lollasthit 发表于 2014-3-9 13:32

771764704 发表于 2014-3-9 13:33

支持一下!!!很久没有人破解这个了

萝莉即是正义 发表于 2014-3-9 13:54

感谢KK牛

paul_guo 发表于 2014-3-9 13:55

支持。。。。。。。。。王者版这东西还是可以的。。

若梦成空 发表于 2014-3-9 14:04

很厉害的样子
页: [1] 2
查看完整版本: LOLLHIT破解初探