-
-
[讨论]注重基本知识之局部变量与栈
-
发表于:
2007-10-17 23:10
7652
-
小弟学破解目的:其实说学破解不怎么正确,而是学会分析程序。我将来的目标是编写网络游戏,学完基础网络游戏编写后,经常下载几个游戏来分析,可底层的东西全部在PE文件里,不得不学逆向分析才能从中学会想要的技术。
小弟学破解,看论坛里的文章,不知所云,大多都是写出破解步骤,而不写为什么这样做。
为什么不写呢?因为写破文的人已经懂得其中的道理,自觉不用写。
可是破文如果写给能看懂的人,写了干什么?写了给新手看?可新手看不懂。
而大多破文都是讲的“注册”,而我想要的是逆向分析。
小弟打开OllyDBG,眼花缭乱,自觉原因有二:
一:不熟悉汇编指令和系统API
二:不知道程序运行到哪了,不知道某个时刻寄存器里面存的到底是什么,此条是关键
今天,写了个只有入口函数的程序,硬着头皮用OllyDBG打开,还是看不懂,怎么上来就push ebp?于是上网搜索,原来每个子函数的开头代码都是给局部变量分配空间。
大家能不能帮帮我这个迷途的羔羊?程序的运行原理,从加载到结束的所有原理,应该怎么学?或者有没有现成的文章可以查阅?帮帮小弟吧。我觉得这些所有的底层的基本知识应该被重视,比如在《加密解密》里面就没有写啊。假如知道了程序的运行原理,可想而知,可以做的事就不仅仅是破解了吧。
在下面的代码结束后,小弟又不知道是什么意思了:
push ebp
mov ebp, esp
sub esp, SIZE
push ebx;从这句开始,不知道是什么了。
……
哎,不知道程序到底怎么在底层运行,真是郁闷……
需要了解局部变量与栈的知识的朋友们,可以到百度搜索:Win32程序函数调用时堆栈变化情况分析
我就不在这里贴了,贴了以后,文章就没中心思想了,我写这篇文章的主要目的是求助。
继续硬着头皮看,原来push ebx开始,是对栈的初始化。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课