
汇编
文章平均质量分 71
hacke2
这个作者很懒,什么都没留下…
展开
-
《软件调试分析技术》学习笔记(一)
今天开始写写一些心得体验。《软件调试分析技术》是好友Monster的处女作品。作为一直以的好伙伴,他是我看着长大的,(*^__^*) 嘻嘻……之所以有今天这样的成绩,是与他的努力和天赋脱不了关系的。他大方地给了我PDF版的,我也大方的给了我们全班。但我们班有同学说,“这是撒子呦,看不看不懂”。我决心写一些学习笔记,和我班的同学一起来多交流,让更多热爱次行业的人都进入软件调试这个神殿。原创 2012-01-27 17:49:02 · 3243 阅读 · 0 评论 -
《软件调试分析技术》学习笔记(九)
在C语言中循环会用到for和while结构,现在对比一下。 先看看for循环。C语言代码: #include int main() { int x = 0; for (int i = 1;i <= 100;i++) x = x + i; return 0; } 这段代码用来计算1到100累计相加的结果,编译后使用IDA进行分析,看原创 2012-02-19 11:37:11 · 1414 阅读 · 0 评论 -
对chap532程序时间限制的破解分析
//以后不会写这样的文章了,截图太麻烦了程序下载: http://115.com/file/belwaox2打开程序,明显有限制 首先 Peid 检测程序编程语言是Borland C++,运行程序。 程序调用了系统时间函数 GetLocalTime,这样才能判断当前时间是否过期GetLocalTime 函数原型VOID GetLocalTim原创 2012-02-16 17:11:21 · 1383 阅读 · 0 评论 -
《软件调试分析技术》学习笔记(八)
这两天学JAVA,没更新过了。。switch结构 C语言代码: #include int main() { int a = 1; switch (a) { case 0: a = 1; break; case 1: a = 0x10; break; case 2:原创 2012-02-15 22:48:33 · 1241 阅读 · 0 评论 -
《软件调试分析技术》学习笔记(十)
函数调用 许多程序设计语言中,可以将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,这就是程序中的函数(也被称为过程)。其实程序中的函数和数学中所说的函数是很相似的,都是通过输入自变量(有些函数可能不需要自变量),然后经过一系列的运算,最后得出函数的值。 在汇编语言中对于函数的调用一般用一个call指令来完成,当过程返回时用retn指令来完成。call指令有一个操原创 2012-02-22 22:22:52 · 1221 阅读 · 0 评论 -
《软件调试分析技术》学习笔记(七)
从代码执行的角度上来说,算法分为无条件执行算法和有条件执行算法两种。对于无条件执行算法,它的代码执行顺序总是这变的,不管发生什么情况都是从上到下依次执行;而在条件执行算法中,代码的执行并不是一路向下的,而是由程序中的其他数据所决定的。例如本节要讲的if结构,它具有选择性,当程序遇到if结构的时候只有满足某个条件才会执行某些语句,否则这些语句将会被忽略。看C语言代码:#include原创 2012-02-12 21:34:49 · 1128 阅读 · 0 评论 -
《软件调试分析技术》学习笔记(六)
异或运算,相同则1,不同则0;非运算,零则一,一则零。 明白了机器数和运算的原理以后来看看它们在程序运算中的具体使用方法。C语言代码如下: #include int main() { int a, b, c; a = 1; b = 2; c = a + b; c = a - b; c = a * b; c = a /原创 2012-02-10 17:21:28 · 1222 阅读 · 0 评论 -
对《悠仕书架1.2》程序的算法分析
好久没玩过破解,看M这样牛B,我也重操旧业,来玩玩破解软件下载:http://www.pcdog.com/soft/19432.htm 之所以选这款软件呢,是因为。。。。。算法简单,其实可以直接把JZ换位JNE,但这样就和高中时的我没什么区别看了这么久的《软件调试分析》,总要有一定的长进嘛,来。。一起算法分析。。 用DEDE载入,重要地方我已给出注释,不懂得地方留言讨论原创 2012-02-09 21:00:00 · 1490 阅读 · 1 评论 -
《软件调试分析技术》学习笔记(四)
一起看看数组在程序中的使用。C语言代码:#include int main() { int a[2]; a[1] = 0; a[a[1]] = 1; return 0; } 这段代码定义了一个大小为2的整型数组,给数组下标为1的变量赋值0,然后取数组下标为1的变量的值作为新的下标,给该变量赋值1,这里数组下标为1的变量的值为0,就是说给数原创 2012-02-08 22:05:56 · 2417 阅读 · 0 评论 -
《软件调试分析技术》学习笔记(五)
在了解了变量的使用方式之后,本节来讲讲数在反汇编代码中的简单运算。 计算机在使用数的时候一般会用到二进制,十进制和十六进制。二进制是计算机技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。现在的CPU使用的基本都是二进程数,用高电平表示1,低电平表示0。为了方便区别,一般在二进程数后追加一个字母B,例如二进制数原创 2012-02-09 16:29:23 · 1696 阅读 · 0 评论 -
《软件调试分析技术》学习笔记(二)
1.寄存器寄存器M讲的比较透彻。寄存器是中央处理器CPU的组成部分,是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址,是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。1.1数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。这些 低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的C原创 2012-02-03 16:28:08 · 1476 阅读 · 0 评论 -
蜘蛛纸牌分析
今晚一口气看完了M的BLOG,鸭梨山大啊,看来我还要好好努力。。先转一篇一大早起来我家的小猫又出问题了。。哎这也用了好多年了。。现在觉得三天两头给我坏一次。。Link灯一直不亮。。打电话给电信局的。人家说他在休假不管这事。。这尼玛坑爹的。大过年的让我上不了网啊。。看会书。。但是上不了网查资料也查不了。。。老爸也很郁闷。。上不了网他就打不了斗地主了。。在卧室里一个人玩蜘蛛纸牌呢。但是技术不够。。转载 2012-02-06 20:52:22 · 2355 阅读 · 0 评论 -
《软件调试分析技术》学习笔记(三)
M给出一个C程序#include #include int a; int main() { int b; int *c; c = (int*)malloc(sizeof(int)); a = 1; b = 2; *c = 3; free(c); return 0; } 这段代码定义了一个整型全原创 2012-02-07 20:02:49 · 2023 阅读 · 0 评论 -
《软件调试分析技术》学习笔记(十二)
参数和返回值是函数的两个重要组成部分,可以通过参数向函数传入信息,通过返回值使函数传出信息。看一段C语言代码: #include int function(int a, int b) { if (a > b) { return a; } else { return b; } } int main() { function原创 2012-03-14 16:40:15 · 1003 阅读 · 0 评论