做od附加游戏退出外挂OD出问题了

评价一下你浏览此帖子的感受
=700) window.open('/DownloadImg/5/.gif');" src="/DownloadImg/5/.gif" width=700 onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" border=0>
级别: 管理员
发帖: 430金钱: 2517 RMB威望: 276 点贡献值: 276 点交易币: 276 群组: 在线时间: 15160(时)注册时间: 最后登录: <font color=#0-08-31
转个管用的给你们看看
六种语言破解比较和常见思路VB MASM32 VC BCB 易语言 DelphiVB破解1、VBExplorer查找按钮事件2、有提示框则bp rtcMsgBox3、通过bp __vbaStrCmp/__vbaStrComp/__vbaVarTstEqbp __vbaStrCmpbp __vbaStrComp4、万能断点法(816C24法)注册验证程序可以用这个断点下断,一般离程序访问注册表很近:bp __vbaStrToAnsi5.F12堆栈调用总结:VB程序破解的关键跳转,一般与其它语言的不同,没有JPM XXXXXXX 一般以 JE/JNE XXXXXXXXX 跳转记录一般不会很远(虽然是短距离跳转,但是关键就在这里,可以设置大量的信息) 。如果发现False/True 可能是关键点VB:XXXXXXX JE/JNE XXXXX设置信息设置信息Delphi BC++ 易语言 VC++ 汇编:XXXXXXX JE/JNE XXXXX设置信息设置信息XXXXXXX JMP XXXXX设置信息设置信息VC++ 汇编(有的 一段,一段的):XXXXXXX JE/JNE XXXXX设置信息设置信息retnpush xx设置信息设置信息retnpush xx设置信息设置信息retn易语言易语言破解思路:1. 信息框法 bp MessageBoxA(断对话框)2.字符串法 查看易语言文本信息:bp GetProcessHeap F9运行4次,取消断点 执行ALT+F9 用户代码 F8单步走或者在区段为".data"/".ecode"下断,运行3.窗口标题法 bp SetWindowTextA4.F12堆栈调用0040C0CB=易语言.0040C0CB (ASCII "shaonanshaonvluntan")DELPHI破解:1、DEDE、PE Explorer ResScope作为强有力的辅助工具找按妞事件2、Point-H法3、bp GetDlgItem/GetDlgItemTextA(断输入框)4、bp MessageBoxA(W)(断对话框)---Ctrl+N5、字符串法---插件/搜索所有参考文本6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版] 之类字样的可以通过查找FormCreate/FormShow----DEDE,找到关键标志位!来判断程序怎么样的判断是否注册或者用户类型7. 窗口标题法 bp SetWindowTextA8.F12堆栈调用注册表:bpx RegCreateKeyExA 对于Delphi程序程序来说,用这个断点比较合适bp RegCreateKeyExA 对于加了壳的程序注册码:Rc1-420+用户名(不能为整数,)+C00LC+破解C类&& Point-H法&& bp GetDlgItem(断按下按钮)&& bp MessageBoxA(断对话框)&& 字符串法&& F12堆栈调用&& 窗口标题法 bp SetWindowTextA★★C+程序专用断点★★bp lstrcmpA (KERNEL32.lstrcmpA) 比较用法bp _mbscmp //比较C类程序的经典断点:bp GetWindowTextA(断按下按钮) //也是适用于其它语言bp GetWindowTextLengthA(断按下按钮) //也是适用于其它语言bp GetDlgItem(断按下按钮)&&&&&&&&&& //也是适用于其它语言bp GetDlgItemTextAds:[]=77C01881 (msvcrt._mbscmp)BC++破解1、DEDE、PE Explorer作为强有力的辅助工具找按妞事件2、Point-H法3、bp GetDlgItem/GetDlgItemTextA(断输入框)4、bp MessageBoxA(W)(断对话框)---Ctrl+N5、字符串法---插件/搜索所有参考文本6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版] 之类字样的可以通过查找FormCreate/FormShow----DEDE,找到关键标志位!来判断程序怎么样的判断是否注册或者用户类型7.窗口标题法 bp SetWindowTextA8.F12堆栈调用bpx RegCreateKeyExA 对于Delphi程序程序来说,用这个断点比较合适bp RegCreateKeyExA 对于加了壳的程序MASM32 / TASM32破解入口点 : 6A 00&&&&&&&&&&push 0 E8 5E070000&&&&call 0040192C004011CE A3 &&&&mov dword ptr ds:[406170],eax 6A 00&&&&&&&&&&push 0 68 EE114000&&&&push MASM32.004011EE004011DA 6A 00&&&&&&&&&&push 0004011DC 68 C8000000&&&&push 0C8&& Point-H法&& bp GetDlgItem(断按下按钮)&& bp MessageBoxA(断对话框)&& 字符串法&& F12堆栈调用&& 窗口标题法 bp SetWindowTextA
发表评论:2015年10月 扩充话题大版内专家分月排行榜第三
2016年4月 扩充话题大版内专家分月排行榜第二2015年10月 扩充话题大版内专家分月排行榜第二2015年9月 扩充话题大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。游戏外挂内存数据读取 - 半世疏离花安好 - ITeye技术网站
博客分类:
源地址:网络游戏.每一个数据比如你的血值.MP 值.怪的血值..在内存中是以16进制的形式存放的.而显示给我们看的是10进制的形式显示的,,[16进制转就是ABCDEF,好比 十进制的,逢16进1,十进制是逢十进1,不想算可以用windows自带的计算器,在附件中有]网 络游戏几乎全是动态内存存放[大话战国居然不是.那天写辅助工具时发现的],,就是每上线一次,数据在内存中分配位置会变,但是.数据间地址的差值是不变 的.就是所谓的偏移量..我们要做的工作就是要让动态的,转换成静态的,只要找到一个就成了.别的根据偏移量可以知道.步骤如下:1.我 们进游戏.首先要做的就是找动态内存地址[我以HP值举例],找动态内存的工具软件很多,我推荐金山游侠,FPE,CE,GE等...软件用法很简单.. 就好比你现在的HP值是1000.你先定位好程序.输入1000搜索,会搜到一串地址..然后让自己的血值变(比如穿件加HP的装备,比如是加了50 血),再搜1050,这样试几次就找到了唯一的动态内存地址.[虽然唯一,但一下线就会变的],第一步工作完全了...2.然后我们要用到调试工具设断点,调试工具很多,比如OD或softice等,我以softice举例:比 如我们搜索到HP的动态地址是..我们按CRTL+D呼出SOFICE..下命令设断点BPM
W 然后按F5退出进游戏..只要HP值一变.就会跳出调试的界面.比如说位置跳到了001B:0047EB17 mov eax,[edx+000000fc]处..其中..edx是基值[也可以是esi等等],000000fc是一个固定的地址偏移量,每次进游戏在变的就 是基值中的数值.3.到这..有多种方法可以求得静态地址..一种就是内存注入的方法.网上有很多这类的资料..主要是太麻烦..我就不 写了.我讲我自己的方法.我是用到指针的指针的思想..就是.我们的HP值是存放在一个动态内存地址中..地址其实也是数据..地址也是存放在地址中 的..当然.要基值的地址..所以我们要做的就是找存放基值地址的地址,可以用金山等软件搜索到..不过地址是16进制的..所以要转换成10进制.再找 存放基值地址的地址..比如说找到011076EC.好了.我们的工作完成了...现在就到了怎么写读语句..用C语言写起来很简单..用VB也可以 写..[别人说VB没指针.但并不代表不能用].因为按键是VBS语言.那我就用VB写..当然.我要调用WIN32 API函数VB调 用API要申明,如下:Ddeclare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Longdim edx as longdim hp as longReadProcessMemory nOK, ByVal &H011076EC, edx, 4, 0ReadProcessMemory nOK, ByVal edx+000000fc, hp, 4, 0就这样两条语句..hp中的数值就是我们的血值了..非常精准的可以得到..比如我血有1000点.我要在666点时加血..你就可以if hp&666 then keypress "加血的按键"补充一点..搜索基址的地址是会搜到不少个的..但是一般来说..第一个就是...
------------------------------------------------------------------------------------------------------------------------------
从游戏中得到动态内存数据
作者:sbsummer
刚才我玩了几把疯狂坦克,输了好几盘,觉得无聊就搞搞这个,下面开始说说如何得到游戏中的动态数据(地址改变),以得到疯狂坦克中坦克X坐标为例
------------------------------------------------------------------------------
SoftICE动态调试程序,游戏修改工具(金山游侠),反汇编(W32Dasm),Hex Workshop
------------------------------------------------------------------------------
一、找到内存中坦克X坐标
用金山游侠搜索,方法如下(金山游侠的使用我就不说了)
把坦克往左移动一些,就搜索“减少”;坦克往右移动,就搜索“增大”
反复搜索将会找到一个地址(当然其他游戏可能不止一个),这里是08BFAACC
注:动态的内存分配就是下次你如果再次搜索,地址将不再是08BFAACC
二、找到那条代码修改了这个数据(X坐标)
加载 SoftIce
在游戏状态 Ctrl+D 调出SoftIce,输入 BPM 08BFAACC W,这里的W表示如果这个地 址被写将中断
回到游戏,移动坦克,左移一下,程序中断,SoftIce指向的上面一句是
MOV DWORD PTR [ESI+],EAX
这句就是修改坦克坐标的代码,当然右移也能找到一句,这里就不重复了
三、修改程序使动态的数据变成静态
这里说点题外话,修改程序包括两种,一种是直接修改程序,一种是修改内存中的程序(内存补丁),这里由于我懒,所以用了第一种
修改程序:
疯狂坦克程序存在Fortress2.dat当中,如果你把这个文件改名为EXE文件一样可以运行,这里我们就把他修改成Fortress2.exe
打开W32Dasm反汇编,SHIFT+F12跳到,你看到这几行
MOV DWORD PTR [ESI+],EAX
8B MOV EAX,DWORD PTR [ESI+]
004046BF C000 MOV [ESP+10],
刚才我们说了是修改X坐标的那条语句,现在我们要让他每次修改完程序就能够把X坐标存储到一个固定的地址
现在要让它运行到这里就JMP到一个我们自己的代码的地方,于是在程序的尾部我们找到一段空白的区域00465A52,于是我修改004046BF为代码 JMP
00465A52,机器码为E98E130600,因为这句的长度不够以前的那句长,所以要加入几个NOP,机器码为90,所以我们打开HEX
Workshop修改程序,CTRL+G跳到位移为000046BF的地方,看到了C000,我们把它修改为E98E,现在程序将一运行到这里就跳到00465A52运行我们的代码。
四、实现我们自己的代码,然后跳回
我们的代码要做的是把动态变成静态,
MOV EAX,[ESI+]
MOV [],EAX
这样这个数值无论运行多少次,只要你移动(当然右移也要修改)就能在中找到X坐标,这段机器码为50 8B86A4010000
A E95BECF9FF
忘了说刚才我们把004046BF替换掉的那句MOV [ESP+10],也必须加上,所以打开HEX
Workshop,CTRL+G跳到00465A52,修改加入
C000 50 8B86A E95BECF9FF
这样动态数据就变成了静态
------------------------------------------------------------------------------
现在回顾一下
首先搜索坐标地址
找到改变这个地址的代码
修改代码让他跳到自己的代码中运行
在程序的空白段加入自己的代码,当然要补上被替换了的那句,还有修改了寄存器,必须先PUSH,再POP
下面的工作就是写一个程序读取这个地址了,我用VC写了一个,顺便贴一下关键代码
------------------------------------------------------------------------------
CProcess m_
bool m_ret=m_process.FindProcess("FortressII");
if (m_ret)
BYTE tank1xL = m_process.ReadByte(0x);
BYTE tank1xR = m_process.ReadByte(0x);
WORD tank1x = tank1xL+tank1xR*256;
temp = tank1x;
str.Format("%d",temp);
UpdateData(FALSE);
return TRUE;
else return FALSE;
-----------------------------------------------------------------------------
CProcess是一个我编写的游戏修改类,以下是部分函数代码:
HANDLE CProcess::OpenProcess(char *p_ClassName, char *p_WindowTitle)
hWindow = FindWindow(p_ClassName, p_WindowTitle);
if (hWindow) {
GetWindowThreadProcessId(hWindow, &pid);
return ::OpenProcess(PROCESS_ALL_ACCESS, false, pid);
return NULL;
bool CProcess::FindProcess(char *p_WindowTitle)
if (m_hProcess == NULL) {
m_hProcess = this-&OpenProcess(NULL, p_WindowTitle);
if (m_hProcess)
m_bGameRunning =
return m_bGameR
BYTE CProcess::ReadByte(DWORD p_Address)
if (m_bGameRunning) {
if (ReadProcessMemory(m_hProcess, (void*)p_Address,
(void *)&tmpValue, 1, &bytes) == 0)
return tmpV
-----------------------------------------------------------------------------
浏览: 90260 次
来自: 北京
对于理解前后端交互很有帮助,解决datatables刷新问题, ...
觉得这个东西好古老啊
非常好,我也发现这个问题的。只是没有像你这样写成blog。向你 ...
&div class=&quote_title ...
挺不错的,值得学习!是:|[易客网络]已安全运行:
查看: 57202|回复: 8
写游戏外挂辅助一般流程整理(新手必备)
ta_mind郁闷 04:08classn_01: 250 classn_02classn_12: 1 classn_02[LV.8]以坛为家I主题帖子积分
在线时间594 小时
首先我假设大家是个完全没有任何基础的新人,但要会打字的哦,并且对辅助技术要有强烈的兴趣,还要有一定时间。只要有兴趣+有时间 基本上就成功了,当然有一个部好的加好的技术指导,就能快速成功了.
辅助技术所涉及的很多很多.并且入门是比较难的,不过大家表怕,入门了后,一切都会变得简单有趣.
第一要求& & VC++//VB/ 自少熟悉一种语言的开发环境,其中VC++最难学,功能也最强大,专业程序员必修。Delphi功能也很强大,属于高效快速开发的这种,有人这么说专业的程序员用VC++ 聪明的程序员用delphi。除了VC++和Delphi VB也不错,不过专业程序员都不怎么用它,他对底层的开发 支持不好,需要用到别人写的汇编模块之类的,再看易语言,中国人自己开发的语言,这个语言的特点的就是易学易用,不过底层功能支持也不太好,易语言高级模块还得依靠VC++/Delphi这类语言才能开发出来,所以易语言我个人觉得最适合新手学习!毕竟是全中文的模式吗,本人推荐。
第二要求&&学会汇编语言
学习网络游戏辅助制作,你还必须懂汇编语言,因为辅助编写的关键是分析游戏中所要的关键动作数据,不懂汇编的人也就意味这不懂破解与数据分析.这是必然的,编程语言只是为了以后写辅助时候使用!编程语言来写基本的程序执行代码,但没有分析到游戏数据的话,就无法操作游戏中:自动打怪 自动选怪 自动走路 自动喊话 自动喝药等等各样的动作.
第三要求 简单分析游戏
& & 需要会使用一些工具,分析游戏的窗口,控件,进程,线程,DLL模块,内存..因为做辅助就是要控制游戏程序,所以需要学会分析游戏的这些表面特征与内在数据.了解了游戏的基本构造才能针对性的编写WG功能.
第四要求 学会API
& & 学习一下基本的Win32 API调用很有必要,主要是那些进程线程操作,内存读写,DC设备对象,鼠标键盘模拟等.当然这一步不好走,可能需要耗个两个月才能有个基本理解.
走完上四步,一般就能编写出来简单的辅助了.事实上有些游戏并不需要多高深的技术才能做出辅助,比如说像网易里的那几款西游的游戏,只需要做做鼠标键盘模拟就行了,因为游戏里有大量功能的快捷键.只需要模拟一下这些快捷键就能实速不少的功能.至少我相信,那些能用按键精灵写出来的辅助脚本,大家只要好好学习了上四步用易语言写出来,并且会写得比脚本更好更强大.
第五要求 学会用CE(CE5.4)查找动态内存基址
& & CE可是个利器,对于查找解决游戏中的动态内存等有奇效,呵呵,用法上也不难,花个几天时间就能学会基本的操作了..对于简单的人物信息数据等很容易找到,但对于地图物品,怪物数组的内存稍复杂.
第六要求 学会OD(ollydbg1.1)调试游戏找关键CALL
& & 游戏也是编出来的,里面也是有一个一个的功能函数组合起来.找到一些关键的功能函数入口地址,并分析出该函数的参数,就可以编写CALL代码,来直接调用游戏中的函数,让其实现自动化.
第七要求 学会写CALL代码
& & 对于C语言来说,本身就支持汇编指令编写,但是易语言不支持,幸好网上也有人做出过一些汇编模块,可以使用这些汇编来编写CALL调用代码,也可以使用WG作坊模块里的 调用函数() CALL() 调用机器码() 等命令.
& &若你学会了这三步,恭喜你,你已经进入了辅助的殿堂.基本上你已经居备了编写各种强大功能智能的强大辅助本事啦,当然你若能熟练的掌握这三步,灵活运用,那钱途可真的是不可限量.
第八要求 加解密封包 (一般应用于脱机辅助)
& &&&用OD调试游戏中收发封包的API上下层函数,这里的函数循环体基本上都是游戏的数据包加解密功能了.可以分析之后自已编写出这两个函数代码,也可以直接CALL游戏中现成的加解密函数体.还要分析封包的封装的消息格式.
第九要求 分析游戏地图与寻路 (脱机辅助需要)
& &&&有些游戏里本身就有自动点击行走或寻路的功能,可以很方便的利用之,若没有这些的话,就得分析了,这个有相当的难度.是做挂机挂的必经之路.
第十要求 反反辅助检测
& &&&近年来,随着辅助行业的暴利,进入这个行业的人也越来越多,游戏辅助满天飞,逼得游戏公司不断的推出加强反WG技术.一些高人气的游戏,基本上都有组合了各种反辅助组件.使一般的辅助技术人员无从下手.新手在学习期应该先避开这类的游戏.高手就得进修NT驱动,理解,进入内核层才能与这些反辅助进行抗衡. 驱动编程一般用C/C++语言,Delphi也可以,还有纯汇编了
总得来说,学习研究辅助方面的技术,是百利而无一害,但整个学习过程中虽然是很幸苦,当然每学会掌握一步都会很有成就感.只要学好了前六步,一般就可能独挡一面,月入过万很容易.
对于完全没有基础的新人来说,只要刻苦努力些,仔细看我们提供的教程,不耻多问.每天花至少三个小时以上,一年左右的时间基本上就能学会上述的前六步.希望今后大家多勉多历.共同学习,共同提高,.钱途自然会一片光明.........
到易客网络一游,不是枭雄亦风流...
ta_mind开心 18:10classn_01: 9 classn_02classn_12: 1 classn_02[LV.3]偶尔看看II主题帖子积分
编程入门, 积分 416, 距离下一级还需 84 积分
编程入门, 积分 416, 距离下一级还需 84 积分
在线时间10 小时
哈哈啊啊哈哈哈。好啊。要是能讲点游戏保护就更好了。顶!!!!!!!
到易客网络一游,不是枭雄亦风流...
ta_mind擦汗 11:45classn_01: 4 classn_02classn_12: 1 classn_02[LV.2]偶尔看看I主题帖子积分
略有小成, 积分 878, 距离下一级还需 122 积分
略有小成, 积分 878, 距离下一级还需 122 积分
在线时间20 小时
我现在正朝这个方向努力呢
classn_11主题帖子积分
初识编程, 积分 16, 距离下一级还需 184 积分
初识编程, 积分 16, 距离下一级还需 184 积分
在线时间0 小时
ta_mind开心 11:37classn_01: 4 classn_02classn_12: 1 classn_02[LV.2]偶尔看看I主题帖子积分
初识编程, 积分 161, 距离下一级还需 39 积分
初识编程, 积分 161, 距离下一级还需 39 积分
在线时间6 小时
教我找全P基址吧!
到易客网络一游,不是枭雄亦风流...
ta_mind擦汗 11:45classn_01: 4 classn_02classn_12: 1 classn_02[LV.2]偶尔看看I主题帖子积分
略有小成, 积分 878, 距离下一级还需 122 积分
略有小成, 积分 878, 距离下一级还需 122 积分
在线时间20 小时
不错,又占了一个沙发!
ta_mind开心 13:40classn_01: 1 classn_02classn_12: 1 classn_02[LV.1]初来乍到主题帖子积分
初识编程, 积分 44, 距离下一级还需 156 积分
初识编程, 积分 44, 距离下一级还需 156 积分
在线时间0 小时
多谢分享经验
以后还请多多指教啊
签到咯 嘿嘿
ta_mind郁闷 16:31classn_01: 2 classn_02classn_12: 1 classn_02[LV.1]初来乍到主题帖子积分
初识编程, 积分 41, 距离下一级还需 159 积分
初识编程, 积分 41, 距离下一级还需 159 积分
在线时间1 小时
#在这里快速回复#.
ta_mind郁闷 14:19classn_01: 1 classn_02classn_12: 1 classn_02[LV.1]初来乍到主题帖子积分
初识编程, 积分 27, 距离下一级还需 173 积分
初识编程, 积分 27, 距离下一级还需 173 积分
在线时间0 小时
& && && && && && && && & 谢谢你。对于我是个新手这边文章对我实在太有用了。
到易客网络一游,不是枭雄亦风流...
易客网络美女可申请!
论坛永久Vip会员可申请此勋章
精华贴子超过15贴,可申请此勋章!
在线时间大于100小时可申请!
易客居民认证勋章
社区QQ达人
使用QQ帐号登录论坛的用户
工作时间:9:00-24:00
Powered by
&Designed by外挂原理讲解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
外挂原理讲解
上传于||文档简介
&&外挂原理讲解
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 od过游戏检测 的文章

 

随机推荐