抛砖引玉,说说我干的勾当,干过类似坏事情的各位也说说

去年玩弹弹堂,问题技术不行,所以想写个弹弹堂外挂.
弹弹堂是一款类似疯狂坦克的游戏,通过调节发射炮弹的角度和力度,把炮弹打到敌人的位置,把敌人打死或者击落,游戏很简单,随机的参数也只有风力一个,查询了下网上的一些资料,发现大家很多是使用一些很简单的截图,测量距离,计算,而参数的获得一般是采用图像识别的方法,使用这些办法,比较的原始,基本没有被服务器发现危险,缺点是:极其粗糙,落点计算有很大误差.

本人菜鸟一个,超级的,不懂flash编程,对上面所说的粗糙办法也做不到,看到别人用java之类的写程序只是佩服加羡慕.思索之余,想用类似编写游戏外挂的办法,注入到flash里面,直接调用flash里面的函数,但是,找了很久没有找到这方面的资料.最后,灵机一动,采用了以下方法,成功写出了一个简单又有效的外挂

首先,flash游戏,其实和普通的客户端游戏没有区别,从代码的角度上来说,其实更容易被人给破解,因为flash反汇编的时候,他的代码阅读性更强.

所以,我先把弹弹堂的loader程序下载下来,然后反编译,目的是找到主flash的下载地址和加载参数
然后把主flash下载,反编译,然后把他再次编译.

做的其实就是这个事情,但是,如何把这个flash编译成功就很累人了,虽然代码非常接近本来的面目,但是依旧有很多的错误,一一解决后,还牵扯到一个连接路径的问题,因为flash在官方网站运行,里面的图片,音乐,其他资源flash等等都是相对路径加载的,所以,还得在此基础上把他改成绝对路径.

全部ok后,自己架设一个简单的web服务器,把flash放上去,然后把加载参数写到调用flash的网页上,登陆,哈哈,成功进入游戏,现在虽然登陆的是自己的网站,但连的却是官方的游戏服务器.

可能有人会说,没看到外挂啊,只是,整个客户端代码都在手上,想加什么功能就加什么功能了
我给自己的弹弹堂flash加上了计算弹道的功能,红色的弹道清晰,准确,发射炮弹的时候,完全是循着轨迹过去的,做不到百发百中,不过是指哪打哪了

这里,我没有任何的贴图,代码之类,只写了思路,不是我保密,因为写这个帖子也是刚刚看了其他人的帖子,所以写的,时间过去快1年了,又因为重装系统,游戏更新,现在的代码都失效了,贴出来也没用,当初也录像过,只是也找不到了,写在这里,只是想说下,flash游戏,只要想搞外挂,比其他游戏更可怕,完全的内置式,想怎么搞就怎么搞

起因:看到沪江听写网站上的一款flash在线播放器比较实用,就打算占为己有。其间遇到了一些问题,用了一天时间彻底解决,使梦想变成了现实。
    沪江听写网站简化后的关键代码如下:
       
   
    具体过程:
    首先是发现问题。通过编程发现如果直接使用该swf文件,即使改变mp3文件路径,播放的仍是先前的音频。

其次是分析解决。

第一步:使用SWFDecompiler4.5.exe反编译voa_player.swf得到voa_player.fla(flash源文件)、voa_player_new.as(动作脚本)这两个文件。
    
        

第二步:使用Flash CS3 Pro打开voa_player.fla,对脚本进行补丁从而增强其功能,最后编译生成新的swf文件。

第三步:使用delphi编写应用软件,在flash控件中载入新生成的swf。

程序界面如下:
         

其中的关键代码:Flash1.SetVariable('_file','D:\xxx\123.mp3');
             以上代码语句再配上修改后的voa_player.swf就可以随心所欲的播放MP3文件了。

具体dephi实现代码如下:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes,Controls, Forms, Dialogs,StdCtrls, OleCtrls, ShockwaveFlashObjects_TLB;
type
TForm1 = class(TForm)
Flash1: TShockwaveFlash;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
end;
var
Form1: TForm1;
path:string;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
path:=ExtractFilePath(ParamStr(0));
flash1.Movie :=path+'player.swf';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
targetWnd:Thandle;
r :TRect;
point:TPoint;
begin
Flash1.SetVariable('_file',path+'1.mp3');
targetWnd := FindWindow('TForm1','天易love');
if targetWnd <> 0 then
begin
GetWindowRect(targetWnd,r);
getcursorpos(point);
setcursorpos(r.Left+96,r.Top+80);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);  // 模拟鼠标双击 stop_btn
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
setcursorpos(point.x,point.y);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
targetWnd:Thandle;
r :TRect;
point:TPoint;
begin
Flash1.SetVariable('_file',path+'2.mp3');
targetWnd := FindWindow('TForm1','天易love');
if targetWnd <> 0 then
begin
GetWindowRect(targetWnd,r);
getcursorpos(point);
setcursorpos(r.Left+96,r.Top+80);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
setcursorpos(point.x,point.y);
end;
end;
end.

【分享】超级菜鸟另类玩swf反汇编相关推荐

  1. NO.119 不懂语言代码,超级菜鸟的建站分享(二):界面设置。

    为什么80%的码农都做不了架构师?>>>    上一篇主要是跟大家分享了注册购买域名,解析以及使用蝉知免费CMS搭建自己个人网站的详细过程. 不懂语言代码,超级菜鸟的建站分享(一): ...

  2. 不懂语言代码,超级菜鸟的建站分享(一):建站流程

    文科女一枚,和各种程序语言以及代码的交集为零. 闲暇时间,爱好点厨艺,时不时用相机记录自己的做菜过程.一直想拥有自己的小站,记录下自己的做饭种的种种. 无奈,不懂任何编程语言和代码,完全硬伤呀.也一直 ...

  3. 超级菜鸟如何入门数据分析?

    大家好,我是宝器! 今天这篇文章是宝器在知乎上的一个问答,超级菜鸟如何入门数据分析? 我的回答全文大致如下(全文很长,建议收藏阅读): 经常看到很多朋友会问,入行数据分析之前我要不要学个java,学个 ...

  4. BIOS INT 10-13功能调用的“另类”玩法

    http://www.cnblogs.com/ljf9201314/archive/2008/07/21/1247653.html BIOS INT 10-13功能调用的"另类"玩 ...

  5. 超级菜鸟怎么学习数据分析

    各位亲爱的小伙伴,中秋快乐,为了不打扰大家过节,这篇文章就提前发了.今天聊一聊超级菜鸟怎么学习数据分析,我将从三个方面来阐述:数据分析.学习和超级菜鸟. 本文大概2700字,读完需10分钟,建议收藏 ...

  6. 超级菜鸟如何快速入门数据分析?

    从事数据科学行业差不多快5年了,自行设计开发过两套数据分析平台,对业务数据分析深有体会,本人深恶痛绝那种<5天学会数据分析>的课程或者趴一下甩出来一堆技能列表与书单的回答. 我们知道,数据 ...

  7. 软件也兼职 Word2003的另类玩法(转)

    软件也兼职 Word2003的另类玩法(转)[@more@] 大家都知道Word是文字处理软件中佼佼者,不过你知道吗?它还可以播放网络电影.Flash,还具有英汉双向翻译,给词语加注解等有趣功能,本文 ...

  8. 59深度解密五十九:利用“抖音”进行吸粉的简单、另类玩法

    网络营销推广技术.技巧深度解密(五十九)指南: 1.本文档适合零基础和互联网营销推广工作者,主要讲解抖音吸粉的问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为. 3.敬畏法律,尊重原创 ...

  9. 有趣的串口--之超级终端的玩法-2[转]

    nt 的 有趣的串口--之超级终端的玩法-2[转] 5. ASC II码表和转义字符 ================================     我们输入的显示字符都是ASC II的标准 ...

  10. 用java玩的游戏平台_分享4个边玩边学Python的编程游戏网站

    原标题:分享4个边玩边学Python的编程游戏网站 前言 大家好,欢迎来到 Crossin的编程教室 ! 学习编程虽然对有些人来说是件乐事,但是对大多数人来说仍然是一件比较枯燥困难的事情.当然,面临这 ...

最新文章

  1. Redis源码解析:14Redis服务器与客户端间的交互
  2. 音视频技术开发周刊 63期
  3. “vector”: 不是“std”的成员_libcxx 的 std::function 源码分析
  4. 八数码问题II-双向bfs和map标记
  5. java 电子实时看板,看板界面的实现
  6. Nginx之进程间的通信机制(信号、信号量、文件锁)
  7. 现在很多公司都在辞退年龄超过35岁以上的员工,原因到底为什么?
  8. SPSS基础教程:统计分析前的准备
  9. php输入为空,ecshop搜索框内容为空提示用户输入内容
  10. 无器械健身锻炼全身肌肉的方法
  11. java 函数式接口与Lambda表达式
  12. 全面解析ThreadLocal
  13. 华为鸿蒙手机什么时候出售,南财快评:鸿蒙出世,现在明白任正非为什么会说“宁可卖5G,也不会卖终端”了...
  14. 关于亲现实儿童游戏系统的解释
  15. AtCoder Beginner Contest 170 F. Pond Skater
  16. 浅谈使用Word和Baklib制作帮助文档区别
  17. Spring 整合Quartz 2实现定时任务四:细化调整及一些已知的问题
  18. 京东页面动态商品分类
  19. 虚拟机与Linux的安装
  20. 【已解决】-Mac/Mac mini/Macbook上修改鼠标指针大小

热门文章

  1. 赵小楼《天道》《遥远的救世主》深度解析(36)丁元英为什么参加芮小丹组的那场文化人的饭局?
  2. Ubuntu 老版本下载
  3. Android开发之隐示意图跳转
  4. excel高级筛选怎么用_Excel表格自动筛选的9个高级用法
  5. 网页游戏是如何快速推广,寻找真实玩家。提高充值消费的。这里都有教程
  6. ​什么是bug?bug的源头在哪里?
  7. 黑客如何用线程注射技术隐藏自己的病毒
  8. J2EE配置文件加密
  9. 交换机的原理及其配置(一)
  10. 任天堂游戏 html5,任天堂Switch游戏销量排行Top40,赶快收藏跟着买就对啦!