我想学习反汇编 CALL 技术 封包解密技术 ...

学习反汇编记录 - 跌跌撞撞 - 博客园
最近要做驱动程序,需要用到反汇编。在网上收集了一些资料,了解到一些常用工具名称,一些反
汇编操作的经验总结,有一篇文章说QQ大厅多开的破解,很有意思。看起来最简单了,我也试
验一下,拿我很喜欢的小游戏《宝石迷阵》做实验。打这个游戏当年我还创造了13万的高分,至今
没有人能超越。前几天也是拿他作查找/修改内存试验,效果很不错。
这几天收集整理了大批的反汇编工具,有Cheat engine, Ollydbg, PE Explorer,IDA Pro, W32ASM。
IDA不能用,老是说过期了。
Cheat Engine是修改游戏内存的工具,反汇编用不上。不过还是很好玩的工具,和我写的程序效果
差不多,可以不断检索,很快找到内存位置。今后可能要通过程序动态检索修改内存,所以这样的
工具我不会下功夫继续做下去。
Ollydbg很好用,正在掌握中。
W32ASM和Ollydbg差不多,只是界面、代码看着更整洁一些。
HMODULE hModule = GetModuleHandleA(appName);
if(hModule == 5A4D)
&ecx = hModule+3C;
&if(ecx == 4550)
用Ollydbg做跟踪,
开两次游戏,
004AB9BF&& . /74 1F&&&&&&&& JE SHORT WinBej.004AB9E0
004AB9E0&& & \E&&& CMP DWORD PTR DS:[ECX+74],0E
004ABA91&& .& F645 C8 01&&& TEST BYTE PTR SS:[EBP-38],1
进行测试,是否有一个句柄。
发出ZwRaiseException后退出游戏。
CPU Disasm
Address&& Hex dump&&&&&&&&& Command&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Comments
004AB9FE& |. /75 08&&&&&&&& JNE SHORT 004ABA08
CPU Disasm
Address&& Hex dump&&&&&&&&& Command&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Comments
004ABA0F& |. /75 08&&&&&&&& JNE SHORT 004ABA19
这里是发生跳转的点
CreateMutexA
昨晚在看雪论坛下载到一个可用的IDA,他也是反汇编好工具。
早上安装使用,发觉他有一个优点,可以用图形的方式列出过程,子过程也可以建立新窗口查看。
从起点PUSH 60H开始跟,记录下每一次进入的子过程的地址。
多开 - 路径
004AB97F - 004AB98D - 004AB9A9 -
004AB9B6 - 004AB9E0 - 004AB9E6 -
004AB9EE - 004AB9F4 - 004ABA08 -
004ABA19 - 004ABA32 - 004ABA58 -
004ABA69 - 004ABA7C - 004ABA97 -
004ABAA0 -
004ABAA6 - 跳转 Over
单开 - 路径
004AB97F - 004AB98D - 004AB9A9 -
004AB9B6 - 004AB9E0 - 004AB9E6 -
004AB9EE - 004AB9F4 - 004ABA08 -
004ABA19 - 004ABA32 - 004ABA58 -
004ABA69 - 004ABA7C - 004ABA97 -
004ABAA0 -
004ABAA9 call sub_40BA8C 启动程序
经过前几天的努力,感觉前面不会是问题所在,因为运行过程一模一样,感觉sub_40BA8C里面有原因。
用新的窗口打开这个子过程。又打开了几个以后,突然出现了很多很多代码,我想这里是InitApp
的主体吧。在里面找寻了一会,看到CreateMutexA函数。它下面有一句Cmp eax, 0B7h 估计是检查
创建结果,用VC的错误查询器查看0B7h,是"当文件已存在时,无法创建该文件"。这样的错误很明显
说明Mutex已经存在,无法继续创建。得,这就是问题的原因了。
sub-40BA8C - 跟踪
441047 call ds:CreateMutexA
创建互斥矩阵
44105D cmp eax, 0B7h&&
创建失败 GetLastError() == 0xB7
183(0xB7)错误,当文件已存在时,无法创建该文件。
441062 jnz&& short loc_441082&
eax - 0B7h != 0 则跳转
再用Olldbg启动游戏,在44105D处修改一下错误代码,0B7h改为0B6h,继续运行,多开运行成功。
总结一下:
用Olldbg很多天都找不到问题的原因,是因为用OD我一直在main函数里面打转转,根本没有进入到
真正初始化的函数里面,原因是程序的跳转太多了,很难一个一个子程序都进入,进入多了以后自
己都不知道转到了哪里。而且OD所有过程在一个文件里面,看着容易糊涂。
IDA的过程方式用图表,子过程又在新的窗口里面,很清楚下面去了哪里。很容易就找到目标。用
OD 5天没有解决的问题,IDA半天就连学带用掌握了。
OD查询函数很麻烦,用了那么久依然不熟练。IDA修改汇编命令我还没学,只知道OD可以一边运行
一边修改指令。
W32ASM查询很容易,但是和OD一样很难一次看清楚所有的子程序。
我想以后我会更喜欢IDA的,至少今天只用了半天就通过它搞好了事情。接下来多多熟悉IDA,掌握
更多操作方式。过几天学多了,我把经验继续贴进来。
阅读(...) 评论()call是如何炼成的_百度知道
call是如何炼成的
提问者采纳
为何很多新手会找武林的CALL但换一个游戏却不行了呢.而不是从执行动作和发送封包,是作用于客户端与服务端通信,发送加密包.这个就要我们去猜测了,或者只有3层的时候估计都会傻眼吧.只有清楚游戏编程人员的程序算法结构思路,武林大部分CALL都能下bpsend用CTRL+F9返回找到,组建明文包,不是所有的游戏都是一个结构写成的,比如说有些游戏下bpsend返回只有3层.但如果我们第一次找的话那么该如何知道这个过程呢?这里思路很重要;魔鬼作坊&quot,其实这里的send应该说被创建成一个线程?其实谁都不知道.这样我们可以想象游戏的走路运行过程是这样的计算走路路径,放到一个结构里.然后一个子程序调用走路函数发送寻路路径中每一个坐标.那么我们该如何找这个CALL呢.而我们调用的CALL则是执行动作或者跳转的相关CALL中.这个是根据反汇编代码猜测出来的,加密明文包.除非你看过源代码?send大家都应该知道是发包函数.既然是猜测的话,马上去百度搜索&quot,来查询是否需要发包?一般CTRL+F9找到的寻路都是那种走一步断一次的CALL,那么你就能找到你想要的CALL,核心代码层肯定不会在这3层中.并不是所有游戏都是一个引擎做的、快速成为做挂达人.比如说打坐,换一个游戏发送bpsend返回找不到一个CALL?那是因为很多人都没有思考过为何这样就能找到CALL,bpsend我们是断在了发送加密包这里,你要猜测程序员是如何构建这个注册算法的我们知道;点击第一个站进入.完美游戏的运行过程,你对程序运行的过程猜测的想法越接近游戏编程人员.找CALL也是逆向的一种.也就是走路算法,走到目的地终止.学习各种外挂制作技术.游戏有一个子程序专门用于接受用户鼠标或者键盘信息,才能正确的找到你想要的。比如说寻路CALL为何武林寻路CALL一般不能用CTRL+F9返回找呢.猜测游戏的结构算法.但是为何这样就会找到我们想要的东西呢.我们来思考一下,也是有技巧的.这一点和破解很相似,然后做出判断,学会猜测程序员的想法,然后做内存释放等余下动作,执行动作.这个就是完美国际的打坐CALL的运行思路.从这里我们可以看出,而真正的寻路则是调用一次断一次.你要学会思考,跳转到相关CALL,但决定思路的就是你的想法
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁call 我想学用易语言写调用游戏远程call_百度知道
call 我想学用易语言写调用游戏远程call
有没有什么可以学写call的教程大家推荐下 现在我游戏call能找到但是 找到只会用工具测试 易语言不会
大家推荐下 有没有什么学易语言学汇编写call的教程 是易语言汇编写call哦
就是远程调用游戏call、
ebx、小弟先说谢谢了,1
、需不需也写进去 希望前辈们能帮我把代码写出告诉我什么意思;
选怪call0047264E
E8 B2910000
CALL ElementC.
Case 145 of switch
、edx我是独立团的终生会员 不要独立团的
学汇编调用游戏call
:214EBDD8这个call易语言汇编写法怎么写 这个call push了1个eax那么eax要怎么加进去 我下断之后在命令输入dd eax eax的值是145 这个145要怎么加进去 还有其他ecx:145ecx.
MOV AL、因为没有分了:188CFE98
变量:229B5B98edx、实在给不上分; &#92
提问者采纳
ecx,你可以F7跟踪. 是stdcall格式所以参数是倒序;的反汇编,王爽的教程不错废话少说;ElementC、ebx,开始解答CALL是调用一个过程或地址如果有参数call调用前要push参数根据你提供的信息发现 ElementC,因为你没给出&quot、需不需也写进去&quot.因为DD[eax]=145所以push eax = push 145至于&quot.&quot、 我无法判断,看看有没有操作那些寄存器先学习汇编吧
提问者评价
其他类似问题
如果是的话 直接PUSH常数如果不是,从根开始搞EAX直到这个EAX到这个地步,找到EAX怎么来的首先要知道这个eax是不是常数
按默认排序
其他1条回答
这CALL 很容易写啊,我也是独立团VIP会员了现在,我是用他们的 game-ec 写的
易语言的相关知识
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁独立团论坛-成立于2009年至今已经5年,知识改变命运,技术成就人生,现在加入我们从零开始系统化学习游戏辅助编程技术!
广告位-支持图片(950*60)-4.08
今日: 3071|昨日: 4645|帖子: 369221|
会员: 212036|欢迎新会员:
加入独立团论坛
最新系列课程
永久会员-易语言编程从零基础教程永久会员-易语言第一版内存辅助教程永久会员-第三版本Asm汇编教程永久会员-易语言第四版驱动教程永久会员-易语言第五版网页辅助教程永久会员-第六版OD反汇编逆向分析教程永久会员-第七版本LUA脚本内存技术教程永久会员-第八版本射击透视辅助教程永久会员-第九版封包脱机辅助课程教程永久会员-VC++零基础课程教程永久会员-VC++第一版游戏辅助课程教程
CF最新全部基址3.1.0版本做辅助必备!
**** 本内容被作者隐藏 ****
官方正版系列完整辅助课程
主题: 3800, 帖数: 1万
主题: 3900, 帖数: 6628
主题: 1万, 帖数: 2万
主题: 1万, 帖数: 1万
主题: 6万, 帖数: <span title="万
主题: 2650, 帖数: 2万
主题: 1万, 帖数: 4万
主题: 9650, 帖数: 1万
主题: 1万, 帖数: 4万
主题: 3万, 帖数: 5万
主题: 2000, 帖数: 2万
主题: 600, 帖数: 3284
主题: 800, 帖数: 2万
主题: 200, 帖数: 1万
主题: 3750, 帖数: 1万
主题: 1300, 帖数: 3386
主题: 2650, 帖数: 1万
主题: 5700, 帖数: 2万
主题: 50, 帖数: 332
主题: 150, 帖数: 1000
主题: 2万, 帖数: 5万
分区版主: , ,
主题: 5万, 帖数: 3万
主题: 3万, 帖数: 4万
主题: 3750, 帖数: 2万
主题: 1500, 帖数: 9902
主题: 1100, 帖数: 1万
主题: 100, 帖数: 56
主题: 6250, 帖数: 2万
独立团易语言论坛国内最详细全面的计算机编程语言,网络游戏,网页游戏,单机游戏等辅助开发编程技术学习网站!
Powered by}

我要回帖

更多关于 封包解密技术 的文章

更多推荐

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

点击添加站长微信