【源码】DNF游戏外挂源码--易语言
niit吧
全部回复
仅看楼主
level 6
一楼留给尊敬的百度。
2010年09月16日 01点09分 1
level 6
易语言很强大,做外挂相当棒!!!
献给大家源码,谢谢!!!
2010年09月16日 01点09分 2
level 6
dnfzl.dll
动态链接库源码:
-----------------------程序集-----------------------------
.版本 2
.支持库 spec
.程序集 程序集
.子程序 _启动子程序, 整数型, , 请在本子程序中放置动态链接库初始化代码
返回 (0)   ' 返回值被忽略。
.子程序 RunDllHostCallBack, 整数型, 公开
.参数 一, 整数型
.参数 二, 整数型
.参数 三, 整数型
载入 (主窗体, , 假)
返回 (0)
.子程序 加密
.参数 地址, 整数型
.参数 数值, 整数型
' 置入代码 ({ 199, 195, 8, 0, 0, 0, 199, 193, 40, 163, 49, 1, 139, 9, 54, 139, 60, 43, 139, 7, 139, 137, 68, 0, 0, 0, 199, 199, 44, 163, 49, 1, 139, 63, 193, 224, 2, 141, 52, 8, 51, 247, 54, 51, 180, 43, 4, 0, 0, 0, 137, 52, 8 })
置入代码 ({ 199, 195, 8, 0, 0, 0, 199, 193, 168, 69, 50, 1, 139, 9, 54, 139, 60, 43, 139, 7, 139, 137, 68, 0, 0, 0, 199, 199, 172, 69, 50, 1, 139, 63, 193, 224, 2, 141, 52, 8, 51, 247, 54, 51, 180, 43, 4, 0, 0, 0, 137, 52, 8 })
.子程序 解密, 整数型, 公开
.参数 解密值, 整数型
置入代码 ({ 139, 13, 136, 185, 49, 1, 139, 189, 8, 0, 0, 0, 139, 29, 140, 185, 49, 1, 139, 7, 139, 145, 68, 0, 0, 0, 193, 224, 2, 139, 52, 16, 3, 208, 51, 242, 51, 243, 139, 198, 201, 195 })
返回 (0)
.子程序 _取地址_文本型, 整数型
.参数 变量, 文本型, 参考
' mov eax,[e
bp
+8]
' mov eax,[eax]
' leave
' retn 4
置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
返回 (0)
.子程序 _取地址_整数型, 整数型
.参数 变量, 整数型, 参考
' mov eax, [ebp+8]
' pop ebp
' retn 4
置入代码 ({ 139, 69, 8, 139, 229, 93, 194, 4, 0 })
返回 (0)
.子程序 _取地址_字节集, 整数型
.参数 变量, 字节集, 参考
' mov eax, [ebp+8]
' mov eax, [eax]
' add eax, 8
' mov esp ,ebp
' pop ebp
' retn 4
置入代码 ({ 139, 69, 8, 139, 0, 131, 192, 8, 139, 229, 93, 194, 4, 0 })
返回 (0)
.子程序 公告, , , 公告
.参数 msg, 文本型, , 公告内容
.参数 color, 整数型, , 颜色值
.局部变量 宽字符, 字节集
.局部变量 消息地址, 整数型
.局部变量 CALL地址, 整数型
.局部变量 CALL, 整数型
.局部变量 CALL机械码, 字节集
.局部变量 商店地址, 整数型
商店地址 = 17883512
CALL = 11275008
CALL地址 = _取地址_整数型 (CALL)
宽字符 = 转换Ansi转Unicode (msg)
消息地址 = _取地址_字节集 (宽字符)
CALL机械码 = { 96, 185 } + 到字节集 (商店地址) + { 139, 9, 139, 73, 80, 106, 0, 106, 0, 106, 31, 104 } + 到字节集 (color) + { 104 } + 到字节集 (消息地址) + { 255, 21 } + 到字节集 (CALL地址) + { 97, 195 }
调用子程序 (_取地址_字节集 (CALL机械码), , , )
.子程序 公告1, , , 透明公告
.参数 msg, 文本型
.局部变量 宽字符, 字节集
.局部变量 消息地址, 整数型
.局部变量 CALL地址, 整数型
.局部变量 CALL, 整数型
.局部变量 商店, 整数型
.局部变量 CALL机械码, 字节集
CALL = 十六到十 (“009A5F20”)   ' 公告CALL
商店 = 十六到十 (“0110E178”)   ' 商店地址
宽字符 = 转换Ansi转Unicode (msg)
消息地址 = _取地址_字节集 (宽字符)
CALL地址 = _取地址_整数型 (CALL)
CALL机械码 = { 96, 185 } + 到字节集 (商店) + { 139, 9, 106, 0, 104 } + 到字节集 (消息地址) + { 106, 43 } + { 255, 21 } + 到字节集 (CALL地址) + { 97, 195 }
调用子程序 (_取地址_字节集 (CALL机械码), , , )
.子程序 公告2
.参数 msg, 文本型
.参数 color, 整数型, 可空
.局部变量 宽字符, 字节集
.局部变量 消息地址, 整数型
.局部变量 CALL地址, 整数型
.局部变量 CALL, 整数型
.局部变量 CALL机械码, 字节集
CALL = 11275008
宽字符 = 转换Ansi转Unicode (msg)
消息地址 = _取地址_字节集 (宽字符)
CALL地址 = _取地址_整数型 (CALL)
CALL机械码 = { 96, 185, 120, 225, 16, 1, 139, 9, 139, 73, 80, 106, 0, 106, 0, 106, 31, 104 } + 到字节集 (color) + { 104 } + 到字节集 (消息地址) + { 255, 21 } + 到字节集 (CALL地址) + { 97, 195 }
嵌入机器码 (CALL机械码)
.子程序 嵌入机器码
.参数 机器码, 字节集
.局部变量 首地址, 整数型
.局部变量 指令长度, 整数型
指令长度 = 取字节集长度 (机器码)
首地址 = 申请内存 (指令长度, )
写到内存 (机器码, 首地址, )
调用子程序 (首地址, , , )
释放内存 (首地址)

2010年09月16日 01点09分 4
level 6
dnfzl.dll
源码
--------------------------窗口程序集------------------------------
.版本 2
.程序集 窗口程序集
.程序集变量 人物基址, 文本型
.程序集变量 怪数基址, 文本型
.程序集变量 EAX, 文本型
.程序集变量 ECX, 文本型
.程序集变量 代码, 字节集
.程序集变量 伤害, 整数型
.程序集变量 倍数, 整数型
.子程序 _主窗体_创建完毕
' 加载Aero特效 ()
' 加载皮肤 (32)
进程ID = 取窗口进程ID (主窗体.取窗口句柄 ())
进程.标题 = “当前进程:” + 到文本 (取进程名 (进程ID))
鼠标显示 ()
内存操作.提升权限 ()
内存操作.打开进程 (进程ID)
内存优化 ()
人物基址 = “0116214C”
怪数基址 = “01578E6C”
EAX = “102DAF0”
ECX = “102DAF4”
伤害 = 500
倍数 = 1
' 加密ecx = 20071848              ’13245A8
' 加密edi = 20071852                ’13245AC
' 商店基址 = 17883512             ‘110E178
' 卖修偏移 = 7096                       ’1BB8
' 仓库基址 = 10116896            ‘009A5F20
' 公告基址 = 11275008             ’00AC0B00
' 消息框公告基址 = 10116896        ‘009A5F20
' 账号地址 = 17871684                 ’ 0110B344
' 监视热键 (&自定义技能, #F1键)
' 监视热键 (&自定义技能循环, #F4键)
' 监视热键 (&高防, #F5键)
' 监视热键 (&无限负重, #F6键)
' 监视热键 (&城镇加速, #F7键)
监视热键 (&倍功, #F2键)
监视热键 (&加倍功, #PageUp键)
监视热键 (&减倍功, #PageDown键)
监视热键 (&加攻击, 107)
监视热键 (&减攻击, 109)
监视热键 (&隐藏, #Home键)
' 公告 (“欢迎使用DNF佐罗 ”, 十六到十 (“FF00FF00”))

2010年09月16日 01点09分 5
level 6
.版本 2
.子程序 遍历打怪
.局部变量 d, 整数型
.局部变量 a, 整数型
.局部变量 g, 整数型
.局部变量 b, 整数型
.局部变量 h, 整数型
.局部变量 x, 整数型
.局部变量 y, 整数型
.局部变量 w, 整数型
.局部变量 f, 整数型
d = 内存操作.读代码 (人物基址 + “+D4+90”)
a = 0
.变量循环首 (1, 20, 1, )
     a = a + 2
     b = 4 + 4 × a
     g = 读内存整数型 (-1, d + b)
     .判断开始 (取文本长度 (十到十六 (g)) = 7 或 取文本长度 (十到十六 (g)) = 8)
         g = 读内存整数型 (-1, d + b)
         .判断开始 (g ≠ 读内存整数型 (-1, 十六到十 (人物基址)))   ' 过滤人物
             h = 读内存整数型 (-1, g + 十六到十 (“1B9C”), )
             .判断开始 (h > 1000 且 h < 100000000)
                 y = 读内存整数型 (-1, g + 十六到十 (“172”), )
                 x = 读内存整数型 (-1, g + 十六到十 (“454”), )
                 .如果 (y < 18000 且 y > 17000)
                     w = 内存操作.读代码 (人物基址 + “+C8+0”)
                     .如果真 (读内存字节集 (-1, w + 十六到十 (“34”), 1) = { 1 })
                         f = 1
                     .如果真结束
                     .如果真 (读内存字节集 (-1, w + 十六到十 (“34”), 1) = { 0 })
                         f = 0
                     .如果真结束
                     .如果真 (f = 0)
                         自定义攻击 (十六到十 (人物基址), 内存操作.读代码 (人物基址 + “+454”) - x, -(内存操作.读代码 (人物基址 + “+172”) - y), 0, 到整数 (编辑框_伤害.内容), 到整数 (编辑框_技能.内容))

2010年09月16日 01点09分 6
level 6
                     .如果真结束
                     .如果真 (f = 1)
                         自定义攻击 (十六到十 (人物基址), x - 内存操作.读代码 (人物基址 + “+454”), y - 内存操作.读代码 (人物基址 + “+172”), 0, 到整数 (编辑框_伤害.内容), 到整数 (编辑框_技能.内容))
                     .如果真结束
                 .否则
                 .如果结束
             .默认
             .判断结束
         .默认
         .判断结束
     .默认
     .判断结束
.变量循环尾 ()
.子程序 队友
.局部变量 d, 整数型
.局部变量 a, 整数型
.局部变量 g, 整数型
.局部变量 b, 整数型
.局部变量 h, 整数型
.局部变量 x, 整数型
.局部变量 y, 整数型
.局部变量 w, 整数型
.局部变量 f, 整数型
.局部变量 Z, 整数型
d = 内存操作.读代码 (人物基址 + “+D4+90”)
a = 0
.变量循环首 (1, 25, 1, )
     a = a + 1
     b = 4 + 4 × a
     g = 读内存整数型 (-1, d + b)
     .判断开始 (取文本长度 (十到十六 (g)) = 7 或 取文本长度 (十到十六 (g)) = 8)
         g = 读内存整数型 (-1, d + b)
         .判断开始 (g ≠ 读内存整数型 (-1, 十六到十 (人物基址)))   ' 过滤人物
             h = 读内存整数型 (-1, g + 十六到十 (“1B9C”), )
             .判断开始 (h > 1000 且 h < 100000000)
                 y = 读内存整数型 (-1, g + 十六到十 (“172”), )
                 x = 读内存整数型 (-1, g + 十六到十 (“488”), )
                 .如果 (y < 18000 且 y > 17000)
                     .如果真 (x ≠ 0)
                         写内存整数型 (-1, g + 十六到十 (“488”), 0)

2010年09月16日 01点09分 7
level 6

                     .如果真结束
                 .否则
                 .如果结束
             .默认
             .判断结束
         .默认
         .判断结束
     .默认
     .判断结束
.变量循环尾 ()
.子程序 自定义攻击, , 公开
.参数 人物, 整数型
.参数 X轴距离, 整数型
.参数 Y轴距离, 整数型
.参数 Z轴距离, 整数型
.参数 伤害值, 整数型
.参数 技能ID, 整数型
置入代码 ({ 139, 117, 8, 139, 54, 184, 208, 90, 2, 1, 139, 0, 185, 212, 90, 2, 1, 139, 9, 106, 0, 106, 0, 139, 22, 80, 81, 106, 0, 106, 4, 255, 117, 20, 255, 117, 16, 255, 117, 12, 106, 0, 106, 0, 255, 117, 24, 255, 117, 28, 139, 206, 255, 146, 212, 2, 0, 0 })
.子程序 弱怪
.参数 参数, 整数型
' 如果真 (内存操作.读代码 (基址2) ≠ 内存操作.读代码 (基址))如果真 ()
' 参数 = 内存操作.读代码 (基址2) + 十六到十 (“10a4”) ' 怪物血量便移
' 加密 (参数, 到整数 (299))   ' 修改怪物血为100
内存优化 ()
.子程序 _选择框_霸体_被单击
.如果 (选择框_霸体.选中 = 真)
     内存操作.写代码 (人物基址 + “+500=1”)
     ' 公告 (“霸体开启成功 ”, 十六到十 (“FF00FF00”))
.否则
     内存操作.写代码 (人物基址 + “+500=0”)
     ' 公告 (“霸体关闭成功 ”, 十六到十 (“FF00FF00”))
.如果结束
内存优化 ()

2010年09月16日 01点09分 8
牛啊,!!之前的大佬怎么是整数还要 到整数(299)
2023年12月13日 16点12分
level 6
.版本 2
.子程序 倍功, , 公开
.判断开始 (时钟_倍功.时钟周期 = 0)
     时钟_倍功.时钟周期 = 500
     标签_状态.标题 = “开启倍功”
     ' 公告 (“开启倍功 ”, 十六到十 (“FF00FF00”))
.默认
     时钟_倍功.时钟周期 = 0
     标签_状态.标题 = “关闭倍功”
     ' 公告 (“关闭倍功 ”, 十六到十 (“FF00FF00”))
.判断结束
.子程序 _时钟_倍功_周期事件
加密 (指针到整数 (十六到十 (人物基址)) + 十六到十 (“1344”), 到数值 (伤害))
' 加密 (指针到整数 (十六到十 (人物基址)) + 十六到十 (“1344”), 到数值 (伤害))
.子程序 加倍功
伤害 = 伤害 × 2
倍数 = 倍数 + 1
标签_倍功.标题 = “当前倍功:” + 到文本 (倍数) + “倍伤害”
标签_伤害.标题 = “当前伤害:” + 到文本 (伤害)
' 公告 (“当前技能攻击伤害:” + 到文本 (到数值 (伤害)) + “伤害”, 十六到十 (“FF00FF00”))
.子程序 减倍功
伤害 = 伤害 ÷ 2
倍数 = 倍数 - 1
标签_倍功.标题 = 到文本 (倍数) + “倍伤害”
标签_伤害.标题 = “当前伤害:” + 到文本 (伤害)
' 公告 (“当前技能攻击伤害:” + 到文本 (到数值 (伤害)) + “伤害”, 十六到十 (“FF00FF00”))
.子程序 无敌假
.如果 (选择框_无敌.选中 = 真)
     ' 内存操作.写代码 (人物基址 + “+21FC=” + 人物基址 + “+4B4=4”)
     ' 公告 (“无敌开启成功 ”, 十六到十 (“FF00FF00”))
.否则
     ' 内存操作.写代码 (人物基址 + “+21FC=” + 人物基址 + “+4B4=4”)
     ' 公告 (“无敌关闭成功 ”, 十六到十 (“FF00FF00”))
.如果结束
内存优化 ()
.子程序 无敌_无效
.局部变量 无敌, 整数型, 静态
.局部变量 无敌线程, 整数型, 静态
.如果 (选择框_无敌.选中 = 真)
     ' 公告 (“无敌已开启 ”, 十六到十 (“FF00FF00”))
     无敌 = 内存操作.读代码 (人物基址 + “+21FC”)
     创建线程 (&无敌子程序, , 无敌线程)
.否则
     内存操作.写代码 (人物基址 + “+21FC=” + 到文本 (无敌))
     销毁线程 (无敌线程)
.如果结束
.子程序 无敌子程序
.局部变量 i, 整数型
.循环判断首 ()
     内存操作.写代码 (人物基址 + “+21FC=” + 人物基址 + “+4B4=4”)
     超级延时 (200)
.循环判断尾 (i ≠ 2)

2010年09月16日 01点09分 9
level 6
.版本 2
.子程序 加攻击
伤害 = 伤害 + 50
标签_伤害.标题 = “当前伤害:” + 到文本 (伤害)
' 公告 (“当前技能攻击伤害:” + 到文本 (到数值 (伤害)) + “伤害”, 十六到十 (“FF00FF00”))
.子程序 减攻击
伤害 = 伤害 - 50
标签_伤害.标题 = “当前伤害:” + 到文本 (伤害)
' 公告 (“当前技能攻击伤害:” + 到文本 (到数值 (伤害)) + “伤害”, 十六到十 (“FF00FF00”))
.子程序 _选择框_高防_被单击
内存操作.写代码 (人物基址 + “+1EAC+244=” + 人物基址 + “
+3
7C=4|” + 人物基址 + “+1EAC+25C=” + 人物基址 + “+37C=4”)
内存操作.写代码 (人物基址 + “+1E98+244=” + 人物基址 + “+37C=4|” + 人物基址 + “+1E98+25C=” + 人物基址 + “+37C=4”)
' 公告 (“免疫伤害。请把项链拖下来再穿上去!”, 十六到十 (“FFFF00FF”))
' 公告 (“如果无效请再点击一下!”, 十六到十 (“FFFF00FF”))
.子程序 _选择框_无敌_被单击
.如果 (选择框_无敌.选中 = 真)
     ' 内存操作.写代码 (人物基址 + “+21FC=” + 人物基址 + “+4B4=4”)
     加密 (内存操作.读代码 (“0116214C”) + 8704, 1)
     ' 公告 (“开启无敌 ”, 十六到十 (“FF00FF00”))
.否则
     ' 内存操作.写代码 (人物基址 + “+21FC=” + 人物基址 + “+4B4=4”)
     加密 (内存操作.读代码 (“0116214C”) + 8704, 0)
     ' 公告 (“关闭无敌 ”, 十六到十 (“FF00FF00”))
.如果结束
内存优化 ()
' 21fc +4 = 2200

2010年09月16日 01点09分 10
level 1
谢谢发帖
楼主再见
2010年10月04日 07点10分 11
level 1
能教教我吗?我QQ395148097 很感谢你
2010年10月29日 09点10分 12
level 1
谢谢楼主!感激不尽!
2010年11月06日 04点11分 13
level 1
加我QQ麻烦你告诉教我做,教成后10QB                      QQ:1243872443
2010年11月11日 13点11分 14
level 1
怎么没有动态链接库
2010年12月03日 14点12分 15
level 1
“dll命令定义表”,就差这个了,这个我不会啊。你这里面的库中对应的命令名该填些什么呢 ?
2010年12月03日 14点12分 16
level 1
“dll命令定义表”,就差这个了,这个我不会啊。你这里面的”库中对应的命令名“那项该填些什么呢 ?万分感谢,帮帮忙吧!!
2010年12月03日 14点12分 17
level 1
而已
2011年01月22日 15点01分 18
level 1
谁会做啊,教教我,可以,吗
2011年01月27日 11点01分 19
level 1
老大    教哈我卅 QQ:601130842
2011年03月15日 04点03分 21
1 2 3 4 尾页