前几天有个朋友让我帮忙看看一个叫"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加速器相关推荐

  1. AppEmit解决Chrome浏览器自2020年12月开始不再支持Flash Player

    AppEmit解决Chrome浏览器自2020年12月开始不再支持Flash Player Chrome浏览器自2020年12月开始不再支持Flash Player 继续谷歌后,微软也给Flash插件 ...

  2. 如何查看exe或dll调用了什么dll

    [转载]如何查看exe或dll调用了什么dll呢 已有 19410 次阅读 2014-4-17 21:08|系统分类:科研笔记|文章来源:转载 Dependency Walker使用说明 在Windo ...

  3. flash build 4.6 不能debug 报错 C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll

    转载:http://wangjianwei866.blog.163.com/blog/static/9295823201111354717933/ 1:Flash Builder 版本是:Adobe? ...

  4. 小游戏赛道如何加速流量增长?

    小游戏是指设计极简的轻量级游戏.它构造简单,但却给人带来了娱乐性和重复参与的欲望. 近年来,小游戏在抖音.微信小游戏等平台拥有着疯狂裂变的可能性,出现了例如"羊了个羊"" ...

  5. 游戏显示计算机丢失文件怎么办,Windows7系统玩游戏提示丢失d3d.dll文件如何解决...

    最近有windows7系统用户反映说在玩游戏的时候,打开游戏时突然弹出一个缺少或者丢失D3D.DLL动态连接数据库组件,导致无法正常启动游戏,想必很多用户都遇到过这样问题吧,针对这个问题下面小编就给大 ...

  6. php镶入电脑网页,flash插件来调用pc的摄像头如何将它嵌入到TML页面

    之所以写这篇文章,主要是因为组长给提的一个新的需求--使用浏览器调用电脑的摄像头,来实现即时拍照的功能.在网上查了很多资料,由于这样那样的原因,最终选择了使用flash插件来调用pc的摄像头.当然,这 ...

  7. Opera GX for Mac(Opera游戏浏览器)

    Opera GX是Opera为广大游戏爱好者设计制作的一款游戏浏览器,这款软件将游戏功能与浏览功能进行了完美的功能结合,不光如此,浏览器专门为游戏设计,拥有有加速游戏网络,优化游戏体验的特色,还支持各 ...

  8. 超级炫酷的游戏浏览器-Opera GX-附文件下载

    小伙伴们注意:公众号的推送机制不再按照时间前后推送了,微信公众号信息流乱序.君哥建议大家把科技毒瘤君公众号置顶(设为星标⭐),以便第一时间看到推送,非常感谢~,方法如下图:   文 章 分 类   软 ...

  9. iTab浏览器插件,助你打造个性桌面

    iTab浏览器插件,助你打造个性桌面 哈喽!各位小伙伴们.随着互联网的高速发展,软件种类层出不穷,人们愈发注重其简便性.功能性.实用性等.今天我要向大家推荐一款非常好用的浏览器插件-iTab.  iT ...

  10. csharp通过dll调用opencv函数,图片作为参数

    [blog 项目实战派]csharp通过dll调用opencv函数,图片作为参数          ​一直想做着方面的研究,但是因为这个方面的知识过于小众,也是由于自己找资料的能力比较弱,知道今天才找 ...

最新文章

  1. npm包开发测试与发布
  2. 写论文查论文查参考文献
  3. 11粘土人脖卡面撑怎么用_零失败的神仙夏日卤味!用电饭煲就能做!配小酒可升仙!...
  4. 未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集...
  5. 自己动手制作chm格式开源文档
  6. 微软发布Azure Pipelines,开源项目可无限制使用CI/CD
  7. 【渝粤教育】广东开放大学 Linux操作系统 形成性考核 (55)
  8. bom实现方块移动_从0开始实现一个俄罗斯方块
  9. ERP项目需要持续的呵护
  10. Java文档阅读笔记-Spring Boot JDBC
  11. css编写规则BEM
  12. c语言 万年历实验流程图,万年历算法(万年历算法流程图)
  13. 一键生成 Android 录屏 gif 的脚本
  14. Java打印变量的参数类型
  15. AltiumDesigner14.3.X下载安装破解教程
  16. AndroidUI:Android的Holo Theme
  17. html中表格背景颜色代码,html,表格背景颜色.doc
  18. 常见信息泄露类漏洞风险与解决方案
  19. 复无法自动修复此计算机,win10自动修复而且无法重置
  20. Anaconda安装详细教程

热门文章

  1. Mrbayes使用形态学数据构建系统发育树
  2. 国产化软件ATECLOUD与LabVIEW软件相比有何优势
  3. 2001年广西壮族自治区植被类型分布数据
  4. 短视频源码APP开发,短视频的功能
  5. 广东石油化工学院大学计算机基础,落实广东石油化工学院关于公布2013年度实验课题项目的通知...
  6. VS 2015社区版离线下载
  7. C语言:Fibonacci数列打印
  8. html在文本中加颜色,如何在HTML中更改文本颜色
  9. 重构改善既有代码的设计思维导图
  10. Android开发:apk反编译及后续打包教程2022win11(亲测)