会c语言能做什么工作咋做挂?

易语言英雄联盟lol游戏辅助制作外挂编程新手教程易语言和c语言_土豆_高清视频在线观看c语言制作游戏外挂_百度知道
c语言制作游戏外挂
如题,需要学那个方面的知识?
提问者采纳
当然网上有些教程。可以让你实现简单的.com/p/" target="_blank">http。也比较难。没个几年也别想能写出来。让你了解各流程,那得去专门的学。不过都是别人写的功能。要想完全自己写的话。过过瘾。每个公司都有人专门负责这方面的人.baidu.baidu://tieba。单机的话可以看下这个。<a href="http://tieba网游?这东西涉及的比较多。现在已经不像以前网络协议不全的年代了
有没有介绍这方面的书籍?那上面的有些东西我看不懂不知道是做什么的。比如这两个是什么定义还有这方面的东西应该需要用很多东西的吧希望你能推存一本介绍这方面的书籍
你可以去看windows编程相关的书。这种定义应该是包含windows自己提供的结构体。当然跟楼下的回答一样。windows里面很多编程都是涉及c++的。所以应该还要懂点c++。顺带补充。。楼下的。网络外挂至少还得学习数据库之类的。
提问者评价
其他类似问题
为您推荐:
其他1条回答
还要学习操作系统,位置你坦白说还是很难的,MFC相关使用:unix网络编程,学习C语言,那个看C++你就明白,写外挂如果是网络游戏,不过hwnd和dword是微软自己定义的,C++,C++primer,你下面哪个图是MFC就像你说的。推荐书目,你要学习网络编程,明白你要修改的变量在内存的哪个位置,也是C语言的代码
游戏外挂的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
C语言编写dnf外挂部分代码
关键字:C语言
  前两天共享了TP驱动和CE编写DNF外挂脚本,那些都是"利其器",今天继续"善其事".
  当今外挂界主流首推E语言,纯中文编程,不过小白本人没接触过,听说各种化的东西,用起来特容易,又名"易语言".大一的课程只教过C++,那就凑合着用c++编写吧。还是先说下,小白c++功底不高,很多代码只知道怎么写但不知道为什么,这里推荐游辅助编程爱好者看《郁金香C++外挂教程》,如果c++的基础实在薄弱就看完孙鑫老师的《孙鑫c++20课》,那个教程虽然是讲C++基础的,但整个20课俨然就是一个外挂编写基础,从用户界面MFC的设计到多线程的注入技术,发包的基础,动态链接库,简单钩子,都学会再看别人代码至少不会一点头绪没有。
  这里还是以DNF为例,为啥?因为我目前只研究过DNF,前一阵是研究单机魔兽改图的,和外挂技术一比那就弱爆了。
  动态链接库我现在使用还不是很熟练,所以这里先介绍一下不用动态链接库的远程注入代码。
  这一贴我还是先扔个砖头,不介绍远程call调用,只说说基础的远程代码注入。
  DNF驱动就好比美女的衣服,被脱去后DNF赤裸裸站在你面前,我们可以对其代码为所欲为。
  OD找call不是本文的重点,只简单提一下:以人物血量为例。目前来说当前血量基址有两个:01E16E20,01E1805C,对其中任意一个下内存写入断点,堆栈找返回地址,四五层之后,会发现如下一段代码:
  push 0
  push edi
  push ebx
  mov ecx,esi
  call edx
  call edx调用之前栈顶值就是目标当前血量(这里已经不再只限于人物血量,怪物血量更新也掉用此函数),当怪物打我们时,目前(2012年日)来说这个函数地址(edx值)是.
  外挂的原理无非就是修改内存,这里就是修改栈顶值,OD手动把她改为0,运行后就实现秒怪了。
  下面我们用C++代码来实现这一功能:
  当怪物打我们时,我们在call edx调用时(即当DNF执行到地址时)把保存我们血量的那一堆栈值改为9999,即伪无敌。
  大体说下编写思路,最开始肯定获得修改dnf进程内存权限,打开DNF进程后,在其内部申请一段内存,写入我们修改过的代码,并把原DNF代码修改使之运行到时跳转到我们自己编写的代码里去,干完坏事再跳回去,神不知鬼不觉
  (清理现场我做的不是很好,不过这里内存的释放不一定那么重要,没影响)
  [CODE]
  HWND hwnd = ::FindWindow(NULL,"地下城与勇士");
  if (!hwnd)
  MessageBox("请先运行游戏!");
  ::GetWindowThreadProcessId(hwnd,&processid);
  HANDLE handle = OpenProcess(PROCESS_ALL_,false,processid);
  //以上过程为套话,窗口名可以下载spy++获取,想知道每个具体函数自行MSDN或百度
  LPCVOID base = (LPCVOID)0x;
  //base是要跳转的dnf原程序代码,我们在这里修改代码,使之跳到我们自己的函数中
  ::ReadProcessMemory(handle,(LPCVOID)0x, (LPVOID)&m_char,6,NULL);
  //设一个char[1000]型类成员变量,保存游戏程序在处原代码,以便不想用外挂时将代码还原
  LPVOID newaddr=VirtualAllocEx(handle,NULL,0x256,MEM_COMMIT | MEM_RESERVE,PAGE_EXECUTE_READWRITE);
  //在DNF进程中申请内存以便存放我们自己编写的代码
  m_newmem=
  //保存新申请的内存地址在LPVOID型类成员变量m_newmem中,以便释放
  char ch1={0xe9};
  ::WriteProcessMemory(handle,(LPVOID)0x,(LPVOID)&ch1,1,NULL);
  //改写地址中DNF源代码,使他"跳"到我们自己的代码中,我们的代码在申请的newaddr内存中,汇编指令跳jmp机器码0xe9
  int Jmp1=(int)newaddr-0x-5;
  //汇编中jmp某地址,转成机器码需要用公式转换:
  //机器码中地址=目标地址-e9(jmp)字节所在地址-5
  ::WriteProcessMemory(handle,(LPVOID)0x,(LPVOID)&Jmp1,4,NULL);
  //将跳转地址即申请的内存地址转成机器码写入内存
  char ch2={0x90};
  ::WriteProcessMemory(handle,(LPVOID)0x,(LPVOID)&ch2,1,NULL);
  //我们改写了源代码的6个字节,而jmp newaddr只用了5个字节,这一字节没有用,用0x90(nop)空代码代替,不改也可以,因为程序不再会执行这里
  //随着DNF的更新,这一地址值将会发生变化,但特征码一般不会变,以后若果发现程序不可用,可以特征码搜出新的地址替换
  char ch[15]={0xc7,0x44,0x24,0x04,0x99,0x99,0x00,0x00,0x55,0x8b,0xec,0x8b,0x45,0x10,0xe9};
  /*我们自己的代码,汇编代码的机器码,最好你手头有汇编和机器码转换的东东,比如CE里随便写一段就能看见对应的机器码,我这里的汇编是这样的:
  mov [+04],
  因为是call edx跳过来的,所以堆栈中被压入了call edx下一句地址,那我们的当前血值就是栈顶指针+4,即[esp,+4]里的值,把0x9999传入就是设定当前血量0x9999
  push ebp //源代码 不变
  mov ebp,esp //源代码 不变
  mov eax,[ebp+10] //源代码 不变*/
  ::WriteProcessMemory(handle,newaddr,(LPVOID)&ch,15,NULL);
  //代码写入到e9(jmp),跳转地址仍需要用公式转换
  int Jmp2=0x60c6a6-(int)newaddr-14-5;
  /*我们改写了源代码从开始的6个字节,所以我们应跳回到+6的位置,而当前e9(jmp)所在地址是newaddr+14*/
  ::WriteProcessMemory(handle,(LPVOID)((int)newaddr+15),(LPVOID)&Jmp2,4,NULL);
  //写入跳回地址jmp
  CloseHandle(handle);
  [CODE]
  若果不想用此功能,可将源代码写回
  代码:
  HWND hwnd = ::FindWindow(NULL,"地下城与勇士");
  if (!hwnd)
  MessageBox("请先运行游戏!");
  ::GetWindowThreadProcessId(hwnd,&processid);
  HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS,false,processid);
  ::WriteProcessMemory(handle,(LPVOID)0x,(LPVOID)&m_char,6,NULL);
  //写回我们改写的6个字节,之前已经保存在了类成员变量中
  VirtualFreeEx(handle,m_newmem,NULL,0x256);
  //释放内存,可有可无
  如果你对此感兴趣,还可以设置一个编辑框,关联类成员变量后动态输入数字来修改当前血量,还可以编写动态链接库创建全局钩子实现在仓库按Home键呼出外挂界面并且按F2实现功能的开启与关闭,对DC使用熟练还可以美化用户界面,一个简单的C++DNF外挂就编写好了。
  友情提醒:
  如果你一直开着此功能刷图,掉线率达90%以上,如果要投入使用,请不要一直开启,而且可以将MOV [ESP +4],9999改成add [esp+4],XXX等等实现比较稳定的功能,这里不再赘述。
  曾经怀疑出小三是因为有dnf代码校验,后来测试了一下一直手动修改堆栈值还是掉线,看来DNF不是检测的代码来判定小三的。
  文中代码新建MFC添加按钮后直接复制可用,我不提供EXE文件下载
[ 责任编辑:之极 ]
新经济、新业态环境下,数据量呈…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte

我要回帖

更多关于 c语言学好了能做什么 的文章

 

随机推荐