赞 | 86 |
VIP | 0 |
好人卡 | 1 |
积分 | 136 |
经验 | 14048 |
最后登录 | 2021-1-24 |
在线时间 | 2753 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 13562
- 在线时间
- 2753 小时
- 注册时间
- 2014-10-4
- 帖子
- 756
|
本能觉得 按F12既然能关掉播放
内部就该有控制逻辑
然后就跟进函数看了一下 发现目标的实现比想象的简单
因为后台时候不播放 所以实现暂停继续也应该可以 不过就算了..
module Graphics #按键跳过视频 #逆向了 适用于300的dll #借用视频播放过程的一个子函数嵌入了检测按键的代码 #下面是用于跳过视频的按键 默认 A + S #详阅 Virtual-Key Codes #要单键的话就设置成一样的 #或者看着改 就是复制粘贴删除的问题 key1 = 0x41 key2 = 0x53 #大写防止被GC吃掉 SKIP_VIDEO_CODE = [0x51, # push ecx 0x6A, key1, # push key # dll 没被改过 下面这句应当不会出错 0xFF, 0x15, 0x88, 0x23, 0x1A, 0x10, # call GetKeyState 0x98, # cwde 0x85, 0xC0, # test eax,eax 0x78, 0x08, # jjjj 0x59, # pop ecx 0xB8, 0xE0, 0xF1, 0x10, 0x10, # mov eax,原函数 0xFF, 0xE0, # jmp eax 0x6A, key2, # push key 0xFF, 0x15, 0x88, 0x23, 0x1A, 0x10, # call GetKeyState 0x98, # cwde 0x85, 0xC0, # test eax,eax 0x78, 0x08, # jjjj 0x59, # pop ecx 0xB8, 0xE0, 0xF1, 0x10, 0x10, # mov eax,原函数 0xFF, 0xE0, # jmp eax # 回 0 停止播放 0x59, # pop ecx 0x33, 0xC0, # xor eax,eax 0xC3].pack("C*") # ret aa = [SKIP_VIDEO_CODE].pack("p").unpack("l")[0] ww = Win32API.new("kernel32", "WriteProcessMemory", "llpll", "v") ww.call(-1, 0x100027EE, [aa - 0x100027F2].pack("l"), 4, 0) end
module Graphics
#按键跳过视频
#逆向了 适用于300的dll
#借用视频播放过程的一个子函数嵌入了检测按键的代码
#下面是用于跳过视频的按键 默认 A + S
#详阅 Virtual-Key Codes
#要单键的话就设置成一样的
#或者看着改 就是复制粘贴删除的问题
key1 = 0x41
key2 = 0x53
#大写防止被GC吃掉
SKIP_VIDEO_CODE = [0x51, # push ecx
0x6A, key1, # push key
# dll 没被改过 下面这句应当不会出错
0xFF, 0x15, 0x88, 0x23, 0x1A, 0x10, # call GetKeyState
0x98, # cwde
0x85, 0xC0, # test eax,eax
0x78, 0x08, # jjjj
0x59, # pop ecx
0xB8, 0xE0, 0xF1, 0x10, 0x10, # mov eax,原函数
0xFF, 0xE0, # jmp eax
0x6A, key2, # push key
0xFF, 0x15, 0x88, 0x23, 0x1A, 0x10, # call GetKeyState
0x98, # cwde
0x85, 0xC0, # test eax,eax
0x78, 0x08, # jjjj
0x59, # pop ecx
0xB8, 0xE0, 0xF1, 0x10, 0x10, # mov eax,原函数
0xFF, 0xE0, # jmp eax
# 回 0 停止播放
0x59, # pop ecx
0x33, 0xC0, # xor eax,eax
0xC3].pack("C*") # ret
aa = [SKIP_VIDEO_CODE].pack("p").unpack("l")[0]
ww = Win32API.new("kernel32", "WriteProcessMemory", "llpll", "v")
ww.call(-1, 0x100027EE, [aa - 0x100027F2].pack("l"), 4, 0)
end
|
|