如何用Delphi做外挂英语沙龙初级版版

Delphi新手学写CALL[外挂教程]
Delphi新手学写CALL[外挂教程]
第一讲 ---
《诛仙》的基址
  在论坛中看过相关的不难发现《诛仙》有三个所谓的基址:基址1:$12F82C  基址2:$9045EC  基址3:$900ADC
  其中它们之间的关系如下:[$12F82C]=$9045EC 、 $9045EC=[$900ADC+1C]
  之所以一开始就先说这个,是想希望大家学会在更新后,如何快速地找到新的,适合自己习惯的有用基址。从上面关系不难看出。$12F82C是三个基址中最为稳定的一个,事实上在6.19、7.3更新时它就没,而其他2个都变了。当然如果你本身是用$12F82C这个做基址的也就免去了不少麻烦。不过我可以证实这个基址1并不能在大部分的环境下(WinXP、Win2000等)通过,如果不是只做给自己一个用的,最好不用这基址。
  我就选用了基址2:$9045EC。因为[$12F82C]=$9045EC,所以当游戏更新了基址时,只要用CE看看[$12F82C]=?就OK了,明白了吗?(当然这并不绝对,但大部分是可行的啦,除非游戏真的动大手术啦)
  而基址3:$900ADC则是用于CALL里面的(大家看看《诛仙》CALL地址公布就知道这地址的重要性了),所以一定要学会怎找到这基址。
  方法就是用CE跟踪[$12F82C]=?这个“?”地址是啥(现在是$9045EC),再根据“mov
ecx, [eax+1c]”查看 eax的值(现在是$9045D0),最后查找$9045D0 得到
$900ADC,OK?
第二讲 --- 《诛仙》的死亡回城CALL(无参数CALL)
  为了大家方便学习,我一次性把整个讲解的实例程序打包贴出来,里面包括了角色基本信息的读取(含名字);无参数CALL(死亡回城)调用;有参数CALL(攻击)调用(仅以重击为例)。
  许多新手也象我当初一样,会问论坛怎没有一个无参数CALL的例子。其实有参数和无参数CALL的调用是一样的。我就用《诛仙》的死亡回城CALL作为无参数CALL的实例,其中关键过程如下:
// ---- 定义参数指针
&&P1_STR = packed record
&&Param1: DWORD;
&&Param2: DWORD;
&&PP1_STR = ^P1_STR;
//打开游戏进程并一次性申请注入空间
procedure TForm1.FormCreate(Sender: TObject);
&&MyHwnd:=findwindow(nil,
'Element Client');
&&GetWindowThreadProcessId(MyHwnd,
@ThreadID);
&&hProcess_N :=
OpenProcess(PROCESS_ALL_ACCESS, False, ThreadID);
&&if hProcess_N = 0 then
& & Messagebox(handle,
' 请退出先登录运行《诛仙》游戏。 ','提示',MB_OK+MB_IconError);
&&Base0:=$9045EC;&
&&&// 基址
&&MemSize:=128;     //
128的空间已足够,无须4096这么浪费
&&ThreadAdd :=
VirtualAllocEx(hProcess_N, nil, MemSize, MEM_COMMIT,
PAGE_READWRITE);
&&ParamAdd :=
VirtualAllocEx(hProcess_N, nil, 20, MEM_COMMIT,
PAGE_READWRITE);
//一次性释放空间
procedure TForm1.FormDestroy(Sender: TObject);
&&VirtualFreeEx(hProcess_N,
ThreadAdd, MemSize, MEM_RELEASE);
&&VirtualFreeEx(hProcess_N,
ParamAdd, 20, MEM_RELEASE);
&&CloseHandle(hProcess_N);
//CALL注入
procedure InjectFunc(Func: P Param: P ParamSize:
&&hThread: TH
&&lpNumberOfBytes: DWORD;
&&if hProcess_N&&0
WriteProcessMemory(hProcess_N, ThreadAdd, Func, MemSize,
lpNumberOfBytes);
WriteProcessMemory(hProcess_N, ParamAdd, Param, ParamSize,
lpNumberOfBytes);
& & hThread :=
CreateRemoteThread(hProcess_N, nil, 0, ThreadAdd, ParamAdd, 0,
lpNumberOfBytes);
& & WaitForSingleObject(hThread,
INFINITE);
& & CloseHandle(hThread);
// ---- 死亡回城
CALL&&注意,下面只有一个Address的CALL入口地址,没其他参数
procedure MyCall1; S
&&Address:=Pointer($5A1F70);
& & pushad
& & call Address
// --- 调用CALL
回城&&注意,下面MyParam没其具体赋值,因为是无参数CALL
procedure TForm1.RetC
&&MyParam : P1_STR;
&&ParamSum: DWORD;
&&ParamSum:=0;
&&if MyHwnd&&0 then
& & injectfunc(@MyCall1,
@MyParam, ParamSum);
//死亡后按这按钮能回城
procedure TForm1.Button2Click(Sender: TObject);
第三讲 --- 《诛仙》的技能攻击CALL(有参数CALL)
  有了上面无参数CALL做基础,有参数CALL就好做了,下面以《诛仙》“重击”技能攻击CALL为例,其中关键过程如下:
// ---- 定义参数指针
&&P1_STR = packed record
&&Param1: DWORD;
&&Param2: DWORD;
&&PP1_STR = ^P1_STR;
//打开游戏进程并一次性申请注入空间
procedure TForm1.FormCreate(Sender: TObject);
&&MyHwnd:=findwindow(nil,
'Element Client');
&&GetWindowThreadProcessId(MyHwnd,
@ThreadID);
&&hProcess_N :=
OpenProcess(PROCESS_ALL_ACCESS, False, ThreadID);
&&if hProcess_N = 0 then
& & Messagebox(handle,
' 请退出先登录运行《诛仙》游戏。 ','提示',MB_OK+MB_IconError);
&&Base0:=$9045EC;&
&&&// 基址
MemSize:=128;&
128的空间已足够,无须4096这么浪费
ThreadAdd := VirtualAllocEx(hProcess_N, nil, MemSize, MEM_COMMIT,
PAGE_READWRITE);
&&ParamAdd :=
VirtualAllocEx(hProcess_N, nil, 20, MEM_COMMIT,
PAGE_READWRITE);
//一次性释放空间
procedure TForm1.FormDestroy(Sender: TObject);
&&VirtualFreeEx(hProcess_N,
ThreadAdd, MemSize, MEM_RELEASE);
&&VirtualFreeEx(hProcess_N,
ParamAdd, 20, MEM_RELEASE);
&&CloseHandle(hProcess_N);
//CALL注入
procedure InjectFunc(Func: P Param: P ParamSize:
&&hThread: TH
&&lpNumberOfBytes: DWORD;
&&if hProcess_N&&0
WriteProcessMemory(hProcess_N, ThreadAdd, Func, MemSize,
lpNumberOfBytes);
WriteProcessMemory(hProcess_N, ParamAdd, Param, ParamSize,
lpNumberOfBytes);
& & hThread :=
CreateRemoteThread(hProcess_N, nil, 0, ThreadAdd, ParamAdd, 0,
lpNumberOfBytes);
& & WaitForSingleObject(hThread,
INFINITE);
& & CloseHandle(hThread);
// ---- 技能 CALL&
&注意,下面只有一个Address的CALL入口地址,还有个P1
---- 技能ID号的参数
procedure MyCall8(P:PP1_STR); S
&&Address:
&&P1: DWORD;
&&Address:=Pointer($4656F0);
&&P1:=P^.Param1;&
&& & // ----
& & pushad
& & push -1
& & push 0
& & push 0
& & push P1
& & mov ecx,DWORD PTR
DS:[$900adc]
& & mov edx,DWORD PTR
DS:[ecx+$1c]
& & mov ecx,DWORD PTR
DS:[edx+$28]
& & call address
// ---- 调用CALL
技能&&注意,下面MyParam.Param1(第一个参数)具体赋值为JNID(技能ID号)
procedure TForm1.JiN
&&MyParam : P1_STR;
&&ParamSum: DWORD;
&&MyParam.Param1:=JNID;
&&ParamSum:=SizeOf(MyParam);
&&if MyHwnd&&0 then
& & injectfunc(@MyCall8,
@MyParam, ParamSum);
//按这按钮能用“重击”技能攻击怪
procedure TForm1.Button3Click(Sender: TObject);
&&JNID:=$DA;&
这里举例用“重击”的ID号为例
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。2014年3月 C++ Builder大版内专家分月排行榜第二2014年1月 C++ Builder大版内专家分月排行榜第二2013年12月 C++ Builder大版内专家分月排行榜第二2013年8月 C++ Builder大版内专家分月排行榜第二2013年7月 C++ Builder大版内专家分月排行榜第二2013年4月 Delphi大版内专家分月排行榜第二
2013年11月 C++ Builder大版内专家分月排行榜第三2013年9月 C++ Builder大版内专家分月排行榜第三2013年6月 C++ Builder大版内专家分月排行榜第三2013年3月 Delphi大版内专家分月排行榜第三
2014年3月 C++ Builder大版内专家分月排行榜第二2014年1月 C++ Builder大版内专家分月排行榜第二2013年12月 C++ Builder大版内专家分月排行榜第二2013年8月 C++ Builder大版内专家分月排行榜第二2013年7月 C++ Builder大版内专家分月排行榜第二2013年4月 Delphi大版内专家分月排行榜第二
2013年11月 C++ Builder大版内专家分月排行榜第三2013年9月 C++ Builder大版内专家分月排行榜第三2013年6月 C++ Builder大版内专家分月排行榜第三2013年3月 Delphi大版内专家分月排行榜第三
2014年3月 C++ Builder大版内专家分月排行榜第二2014年1月 C++ Builder大版内专家分月排行榜第二2013年12月 C++ Builder大版内专家分月排行榜第二2013年8月 C++ Builder大版内专家分月排行榜第二2013年7月 C++ Builder大版内专家分月排行榜第二2013年4月 Delphi大版内专家分月排行榜第二
2013年11月 C++ Builder大版内专家分月排行榜第三2013年9月 C++ Builder大版内专家分月排行榜第三2013年6月 C++ Builder大版内专家分月排行榜第三2013年3月 Delphi大版内专家分月排行榜第三
2014年3月 C++ Builder大版内专家分月排行榜第二2014年1月 C++ Builder大版内专家分月排行榜第二2013年12月 C++ Builder大版内专家分月排行榜第二2013年8月 C++ Builder大版内专家分月排行榜第二2013年7月 C++ Builder大版内专家分月排行榜第二2013年4月 Delphi大版内专家分月排行榜第二
2013年11月 C++ Builder大版内专家分月排行榜第三2013年9月 C++ Builder大版内专家分月排行榜第三2013年6月 C++ Builder大版内专家分月排行榜第三2013年3月 Delphi大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。还没有帐号? 赶紧
帖子文章用户版块本版
1到第9) ? 9 :
location='thread.php?fid=178&page='+page+'';}">页9) ? 9 :
location='thread.php?fid=178&page='+page+'';">确认
&(+4) &&
&(+1) &&
&(+5)
&(+3) &&
1到第9) ? 9 :
location='thread.php?fid=178&page='+page+'';}">页9) ? 9 :
location='thread.php?fid=178&page='+page+'';">确认
Powered by & Copyright Time now is:12-17 02:32 &
版权所有 Gzip enabled【公告】《Metasploit渗透测试平台之应用》专题已完结!
十一月 9, 2012
教程按照由浅入深共分为初中高三个级别,推荐对外挂编写感兴趣的朋友学习
解压密码及下载地址请于登录会员帐号后在下方查阅
推荐学习时间:2-3个月
请使用您的VIP帐号登录本站后即可在页面下方看到课程下载地址 -&
本文隐藏内容
后才可以浏览
Categories:
You must be
to post a comment.1 / 108 页
查看: 40254|回复: 1070
【辅助编写教程】一切从零开始学易语言外挂
TA的每日心情奋斗 14:48签到天数: 69 天[LV.6]常住居民II主题帖子积分
活跃管理成员
吾爱币2156
【辅助编写教程】一切从零开始学易语言外挂
大小:2.58G
【教程介绍:】
一切从零开始系列教程你还在四处寻找游戏辅助教学视频吗?你看过**团的辅助的视频教学了吗?你是否在看过教程后觉得怎么和实践中的差异有那么大呢?你
是否觉得在外挂学习的视频中缺少伙伴呢?
& & 那就看我下面给你放出的史上最易懂的易语言外挂视频,视频中的示例游戏并不是完美的诛仙2或者武林外传等常规游戏,
而是2D游戏中最火的征途,老师从工具的使用,内存的理解,数据的分析,易语言程序的编写,外挂思路的构建一课一课细细讲解,
即使你从来没有接触过外挂学习,你看过这款视频后,绝对不会后悔你花掉的学习时间
声明:本套VIP教程是经过本人重新翻录制作,教程画面和声音绝对和原版一模一样,课程完整!
因为本人以前也学过易语言辅助,看过独立团和万挂作坊的,说实在的,本套教程绝对比市面上的那几套要好N倍,其他培训机构所说的从零开始,等到你真正实践做辅助的时候会发现并不是这么回事,除了能跟着教程示范做之外,如果让你自己动手做其他游戏的,你会发现无从下手,因为他们并没有真正从零开始,没有从最基本的原理开始着手,学完教程,除了会比葫芦画瓢之外,什么也不会!
而本套教程是从做辅助的最基本的原理开始,真正教授你的是技术,是思想,让你用这种编程思想可以针对其他所有游戏,我觉得这才是最主要的,授之以鱼不如授之以渔!希望大家能在本套教程中学到真正的辅助技术!
【教程目录:】
ce使用教程1-9
初级01_理解内存和初识CE
初级02_写单机游戏外挂、初识易语言
初级03_初步认识网络游戏数据存放
初级04_动态地址的处理-找基址
初级05_基址和偏移详解
初级06_用CE、OD找经验基址
初级07_遍历工具的运用
初级08_用易语言显示人物信息
初级09_用CE找当前选中怪物信息
初级10_用易语言输出当前选中怪物信息
初级11_理解call,认识OD
初级12_用OD找打坐call并用易语言实现
初级13_用OD找内挂call
初级14_组合call形成简单挂机挂
初级15_优化打怪思路
中级01_找怪物数组
中级02_找怪物属性
中级03_读取怪物数组
中级04_找物品数组
中级05_找选怪call
中级06_写选怪和技能call
中级07_打指定怪
中级08_写找最近怪
中级09_解决选择已死怪
中级10_找寻路call
中级11_写寻路call
中级12_写固定打怪
中级13_找使用物品call
中级14_找物品数组
中级15_遍历物品数组
中级16_读取包裹物品
中级17_使用指定物品
中级18_找对话NCPcall
中级19_写对话NPCcall
中级20_找对话选项call
中级21_写对话选项call
中级22_写护送
中级23_完善护送
中级24_护送物归属
中级25_解决护送物归属
中级26_写种植
中级27_找玩家数组
中级28_读玩家数组
中级29_找地面数组
中级30_读地面数组
中级31_找捡物call-1
中级32_找捡物call-2
中级33_写捡物call
中级34_写捡物过滤
中级35_判断队内物品
中级36_写队内捡物
中级37_写组队call
中级38_写穿装备call
中级39_找确定及取消call
高级01_找对话选项内容
高级02_写选择对话选项
高级03_找任务数组
高级04_读任务信息
高级05_找技能call
高级06_找技能数组
高级07_读技能数组
高级08_找移物call
高级09_写移物call-1
高级10_写移物call-2
高级11_写自动存物
高级12_找任务怪物数量
高级13_任务完成的判断
高级14_找任务选装备call
高级15_找任务NPC的ID
高级16_写任务选装备call
高级17_脚本1
高级18_脚本2
高级19_脚本3(找全图NPC)
高级20_脚本4
高级21_脚本5
高级22_脚本6
高级23_脚本7
【下载地址:】
游客,如果您要查看本帖隐藏内容请
需要解压密码联系:QQ:&&紫月(收费10元)
TA的每日心情擦汗 21:55签到天数: 1 天[LV.1]初来乍到主题帖子积分
看看 学习 谢谢~
TA的每日心情怒 01:13签到天数: 2 天[LV.1]初来乍到主题帖子积分
1级-新手会员, 积分 11, 距离下一级还需 19 积分
1级-新手会员, 积分 11, 距离下一级还需 19 积分
一切从零开始学易语言外挂
TA的每日心情无聊 00:57签到天数: 2 天[LV.1]初来乍到主题帖子积分
1级-新手会员, 积分 11, 距离下一级还需 19 积分
1级-新手会员, 积分 11, 距离下一级还需 19 积分
一切从零开始学易语言外挂
TA的每日心情郁闷 13:01签到天数: 1 天[LV.1]初来乍到主题帖子积分
0级-初来乍到, 积分 6, 距离下一级还需 4 积分
0级-初来乍到, 积分 6, 距离下一级还需 4 积分
学习来了,好好学习,天天向上
TA的每日心情擦汗 18:59签到天数: 1 天[LV.1]初来乍到主题帖子积分
1级-新手会员, 积分 10, 距离下一级还需 20 积分
1级-新手会员, 积分 10, 距离下一级还需 20 积分
这是第一期嘛 20字啊 20字
TA的每日心情擦汗 02:27签到天数: 2 天[LV.1]初来乍到主题帖子积分
1级-新手会员, 积分 14, 距离下一级还需 16 积分
1级-新手会员, 积分 14, 距离下一级还需 16 积分
学习学习&&楼主万岁```` s sd&&
TA的每日心情怒 12:21签到天数: 3 天[LV.2]偶尔看看I主题帖子积分
一切从零开始学易语言外挂
TA的每日心情慵懒 21:58签到天数: 1 天[LV.1]初来乍到主题帖子积分
0级-初来乍到, 积分 7, 距离下一级还需 3 积分
0级-初来乍到, 积分 7, 距离下一级还需 3 积分
谢谢 。新来的望多指教。 哈哈
TA的每日心情奋斗 22:16签到天数: 2 天[LV.1]初来乍到主题帖子积分
1级-新手会员, 积分 12, 距离下一级还需 18 积分
1级-新手会员, 积分 12, 距离下一级还需 18 积分
看起来好复杂啊。 慢慢学哦
1 / 108 页
社区管理员
论坛管理组用户
持有金币100个.
持有金币10个.
主题数大于100申请后自动发放.
Powered by}

我要回帖

更多关于 空中英语教室初级版 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信