某游戏浏览器Flash加速dll调用,打造我们自己的Flash加速器
前几天有个朋友让我帮忙看看一个叫"HookDll.dll"的dll里面的函数该怎么调用.
他把dll的导出表截图我看了一下:
后来才知道,原来这个hookdll.dll是某游戏浏览器里面的一个文件,而他的主要作用就是用作Flash加速...
看上去貌似挺不错的,如果自己写一个小程序,也可以加速Flash那就好玩了.现在我们就来看看这几个dll怎么调用.需要传什么参数?
直接IDA
IDA载入进来Imagebase是 0x400000
StartHook,EndHook,SetSpeed,SoundHook的RVA加上0x400000即他们对应代码的位置了.
StartHook:
CODE:004124E4 public StartHook
CODE:004124E4 StartHook proc near
CODE:004124E4 push ebp
CODE:004124E5 mov ebp, esp
CODE:004124E7 call sub_412434
CODE:004124EC call sub_4121EC
CODE:004124F1 mov ds:dword_41488C, eax
CODE:004124F7 mov ds:dword_414890, edx
CODE:004124FD mov eax, ds:dword_41488C
CODE:00412503 mov ds:dword_414884, eax
CODE:00412509 mov eax, ds:dword_414890
CODE:0041250F mov ds:dword_414888, eax
CODE:00412515 call sub_412374
CODE:0041251A pop ebp
CODE:0041251B retn 4
CODE:0041251B StartHook endp
通过上面的代码我们可以看出 StartHook的函数定义应该是 void StartHook(void);
继续看EndHook和StartHook类似,定义 void EndHook(void);
SoundHook定义 void SoundHook(void);
SetSpeed:
CODE:00412538 public SetSpeed
CODE:00412538 SetSpeed proc near
CODE:00412538
CODE:00412538 arg_0 = dword ptr 8
CODE:00412538 arg_4 = dword ptr 0Ch
CODE:00412538
CODE:00412538 push ebp
CODE:00412539 mov ebp, esp
CODE:0041253B mov eax, [ebp+arg_0]
CODE:0041253E mov dword ptr ds:dbl_414898, eax
CODE:00412544 mov eax, [ebp+arg_4]
CODE:00412547 mov dword ptr ds:dbl_414898+4, eax
CODE:0041254D pop ebp
CODE:0041254E retn 8
CODE:0041254E SetSpeed endp
通过上面的代码我们可以看出SetSpeed需要传入两个dword类型的参数,函数定义为 void SetSpeed(dword dw1,dword dw2);
好了,现在我们相当于有了这个Hookdll的基本sdk了,可是SetSpeed这两个dword参数该传什么值呢?
直接OllyDbg附加上了某游戏浏览器,查看一上HookDll被加载的基址,同理加上RVA得到代码的地址,然后F2下个断点,拖动一下加速条,SetSpeed则被断下来了.
这里是加速接近2000%时传入的数值,0xCCCCCCCD,0x4033CCCC.
具体这个数值我们就不研究了,我们来调用看看是否有效果.
C++ code:[仅调用SetSpeed]
typedef void (CALLBACK *lpFnSetSpeed)(DWORD,DWORD);
int _tmain(int argc, _TCHAR* argv[])
{
HMODULE hMd=::LoadLibraryA("hookdll.dll");
if(hMd==NULL)
{
printf("未找到 hookdll.dll");
getchar();
return 0;
}
lpFnSetSpeed fnSetSpeed=(lpFnSetSpeed)GetProcAddress(hMd,"SetSpeed");
(*fnSetSpeed)(100,100);
printf("调用成功!");
getchar();
return 0;
}
上面我们看不到效果,mfc里的网页控件也有用过,但是不熟悉了,还是直接上.net的代码吧
public class FlashSpeed
{
[DllImport("hookdll.dll", EntryPoint = "StartHook", CharSet = CharSet.Ansi)]
public static extern void StartHook();
[DllImport("hookdll.dll", EntryPoint = "EndHook", CharSet = CharSet.Ansi)]
public static extern void EndHook();
[DllImport("hookdll.dll", EntryPoint = "SoundHook", CharSet = CharSet.Ansi)]
public static extern void SoundHook();
[DllImport("hookdll.dll", EntryPoint = "SetSpeed", CharSet = CharSet.Ansi)]
public static extern void SetSpeed(int arg1, int arg2);
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//某Flash游戏地址
this.webBrowser1.Navigate("http://wpnm.91mangrandi.com/flash/mcdt/index.html?agent_id=54286&placeid=26752&type=4&game_id=102&aid=mcdt&rand=1&ref=26752.html&t=0.9260381994779965");
}
private void BtnSpeed_Click(object sender, EventArgs e)
{
FlashSpeed.StartHook();
FlashSpeed.SetSpeed(0x43333333, 0x40333333);
FlashSpeed.EndHook();
}
}
Now,现在我们就实现自己的Flash加速器了:)
以上只是娱乐,有兴趣的可以自己尝试一下~ hookdll是别人的东西,请忽商用,后果自负:)
转载于:https://www.cnblogs.com/dreamzgj/archive/2012/11/26/2788635.html
某游戏浏览器Flash加速dll调用,打造我们自己的Flash加速器相关推荐
- AppEmit解决Chrome浏览器自2020年12月开始不再支持Flash Player
AppEmit解决Chrome浏览器自2020年12月开始不再支持Flash Player Chrome浏览器自2020年12月开始不再支持Flash Player 继续谷歌后,微软也给Flash插件 ...
- 如何查看exe或dll调用了什么dll
[转载]如何查看exe或dll调用了什么dll呢 已有 19410 次阅读 2014-4-17 21:08|系统分类:科研笔记|文章来源:转载 Dependency Walker使用说明 在Windo ...
- flash build 4.6 不能debug 报错 C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll
转载:http://wangjianwei866.blog.163.com/blog/static/9295823201111354717933/ 1:Flash Builder 版本是:Adobe? ...
- 小游戏赛道如何加速流量增长?
小游戏是指设计极简的轻量级游戏.它构造简单,但却给人带来了娱乐性和重复参与的欲望. 近年来,小游戏在抖音.微信小游戏等平台拥有着疯狂裂变的可能性,出现了例如"羊了个羊"" ...
- 游戏显示计算机丢失文件怎么办,Windows7系统玩游戏提示丢失d3d.dll文件如何解决...
最近有windows7系统用户反映说在玩游戏的时候,打开游戏时突然弹出一个缺少或者丢失D3D.DLL动态连接数据库组件,导致无法正常启动游戏,想必很多用户都遇到过这样问题吧,针对这个问题下面小编就给大 ...
- php镶入电脑网页,flash插件来调用pc的摄像头如何将它嵌入到TML页面
之所以写这篇文章,主要是因为组长给提的一个新的需求--使用浏览器调用电脑的摄像头,来实现即时拍照的功能.在网上查了很多资料,由于这样那样的原因,最终选择了使用flash插件来调用pc的摄像头.当然,这 ...
- Opera GX for Mac(Opera游戏浏览器)
Opera GX是Opera为广大游戏爱好者设计制作的一款游戏浏览器,这款软件将游戏功能与浏览功能进行了完美的功能结合,不光如此,浏览器专门为游戏设计,拥有有加速游戏网络,优化游戏体验的特色,还支持各 ...
- 超级炫酷的游戏浏览器-Opera GX-附文件下载
小伙伴们注意:公众号的推送机制不再按照时间前后推送了,微信公众号信息流乱序.君哥建议大家把科技毒瘤君公众号置顶(设为星标⭐),以便第一时间看到推送,非常感谢~,方法如下图: 文 章 分 类 软 ...
- iTab浏览器插件,助你打造个性桌面
iTab浏览器插件,助你打造个性桌面 哈喽!各位小伙伴们.随着互联网的高速发展,软件种类层出不穷,人们愈发注重其简便性.功能性.实用性等.今天我要向大家推荐一款非常好用的浏览器插件-iTab. iT ...
- csharp通过dll调用opencv函数,图片作为参数
[blog 项目实战派]csharp通过dll调用opencv函数,图片作为参数 一直想做着方面的研究,但是因为这个方面的知识过于小众,也是由于自己找资料的能力比较弱,知道今天才找 ...
最新文章
- npm包开发测试与发布
- 写论文查论文查参考文献
- 11粘土人脖卡面撑怎么用_零失败的神仙夏日卤味!用电饭煲就能做!配小酒可升仙!...
- 未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集...
- 自己动手制作chm格式开源文档
- 微软发布Azure Pipelines,开源项目可无限制使用CI/CD
- 【渝粤教育】广东开放大学 Linux操作系统 形成性考核 (55)
- bom实现方块移动_从0开始实现一个俄罗斯方块
- ERP项目需要持续的呵护
- Java文档阅读笔记-Spring Boot JDBC
- css编写规则BEM
- c语言 万年历实验流程图,万年历算法(万年历算法流程图)
- 一键生成 Android 录屏 gif 的脚本
- Java打印变量的参数类型
- AltiumDesigner14.3.X下载安装破解教程
- AndroidUI:Android的Holo Theme
- html中表格背景颜色代码,html,表格背景颜色.doc
- 常见信息泄露类漏洞风险与解决方案
- 复无法自动修复此计算机,win10自动修复而且无法重置
- Anaconda安装详细教程