【分享】超级菜鸟另类玩swf反汇编
抛砖引玉,说说我干的勾当,干过类似坏事情的各位也说说
去年玩弹弹堂,问题技术不行,所以想写个弹弹堂外挂.
弹弹堂是一款类似疯狂坦克的游戏,通过调节发射炮弹的角度和力度,把炮弹打到敌人的位置,把敌人打死或者击落,游戏很简单,随机的参数也只有风力一个,查询了下网上的一些资料,发现大家很多是使用一些很简单的截图,测量距离,计算,而参数的获得一般是采用图像识别的方法,使用这些办法,比较的原始,基本没有被服务器发现危险,缺点是:极其粗糙,落点计算有很大误差.
本人菜鸟一个,超级的,不懂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反汇编相关推荐
- NO.119 不懂语言代码,超级菜鸟的建站分享(二):界面设置。
为什么80%的码农都做不了架构师?>>> 上一篇主要是跟大家分享了注册购买域名,解析以及使用蝉知免费CMS搭建自己个人网站的详细过程. 不懂语言代码,超级菜鸟的建站分享(一): ...
- 不懂语言代码,超级菜鸟的建站分享(一):建站流程
文科女一枚,和各种程序语言以及代码的交集为零. 闲暇时间,爱好点厨艺,时不时用相机记录自己的做菜过程.一直想拥有自己的小站,记录下自己的做饭种的种种. 无奈,不懂任何编程语言和代码,完全硬伤呀.也一直 ...
- 超级菜鸟如何入门数据分析?
大家好,我是宝器! 今天这篇文章是宝器在知乎上的一个问答,超级菜鸟如何入门数据分析? 我的回答全文大致如下(全文很长,建议收藏阅读): 经常看到很多朋友会问,入行数据分析之前我要不要学个java,学个 ...
- BIOS INT 10-13功能调用的“另类”玩法
http://www.cnblogs.com/ljf9201314/archive/2008/07/21/1247653.html BIOS INT 10-13功能调用的"另类"玩 ...
- 超级菜鸟怎么学习数据分析
各位亲爱的小伙伴,中秋快乐,为了不打扰大家过节,这篇文章就提前发了.今天聊一聊超级菜鸟怎么学习数据分析,我将从三个方面来阐述:数据分析.学习和超级菜鸟. 本文大概2700字,读完需10分钟,建议收藏 ...
- 超级菜鸟如何快速入门数据分析?
从事数据科学行业差不多快5年了,自行设计开发过两套数据分析平台,对业务数据分析深有体会,本人深恶痛绝那种<5天学会数据分析>的课程或者趴一下甩出来一堆技能列表与书单的回答. 我们知道,数据 ...
- 软件也兼职 Word2003的另类玩法(转)
软件也兼职 Word2003的另类玩法(转)[@more@] 大家都知道Word是文字处理软件中佼佼者,不过你知道吗?它还可以播放网络电影.Flash,还具有英汉双向翻译,给词语加注解等有趣功能,本文 ...
- 59深度解密五十九:利用“抖音”进行吸粉的简单、另类玩法
网络营销推广技术.技巧深度解密(五十九)指南: 1.本文档适合零基础和互联网营销推广工作者,主要讲解抖音吸粉的问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为. 3.敬畏法律,尊重原创 ...
- 有趣的串口--之超级终端的玩法-2[转]
nt 的 有趣的串口--之超级终端的玩法-2[转] 5. ASC II码表和转义字符 ================================ 我们输入的显示字符都是ASC II的标准 ...
- 用java玩的游戏平台_分享4个边玩边学Python的编程游戏网站
原标题:分享4个边玩边学Python的编程游戏网站 前言 大家好,欢迎来到 Crossin的编程教室 ! 学习编程虽然对有些人来说是件乐事,但是对大多数人来说仍然是一件比较枯燥困难的事情.当然,面临这 ...
最新文章
- Redis源码解析:14Redis服务器与客户端间的交互
- 音视频技术开发周刊 63期
- “vector”: 不是“std”的成员_libcxx 的 std::function 源码分析
- 八数码问题II-双向bfs和map标记
- java 电子实时看板,看板界面的实现
- Nginx之进程间的通信机制(信号、信号量、文件锁)
- 现在很多公司都在辞退年龄超过35岁以上的员工,原因到底为什么?
- SPSS基础教程:统计分析前的准备
- php输入为空,ecshop搜索框内容为空提示用户输入内容
- 无器械健身锻炼全身肌肉的方法
- java 函数式接口与Lambda表达式
- 全面解析ThreadLocal
- 华为鸿蒙手机什么时候出售,南财快评:鸿蒙出世,现在明白任正非为什么会说“宁可卖5G,也不会卖终端”了...
- 关于亲现实儿童游戏系统的解释
- AtCoder Beginner Contest 170 F. Pond Skater
- 浅谈使用Word和Baklib制作帮助文档区别
- Spring 整合Quartz 2实现定时任务四:细化调整及一些已知的问题
- 京东页面动态商品分类
- 虚拟机与Linux的安装
- 【已解决】-Mac/Mac mini/Macbook上修改鼠标指针大小