- 博客(31)
- 资源 (15)
- 收藏
- 关注
原创 《软件调试分析技术》学习笔记(十一)
(继上)这种间接调用的方式要比前面看到的直接调用方式麻烦很多。来看一个复杂一点的例子:#include void function0() { return; } void function1() { return; } int main() { int fn[2]; fn[0] = (int)function0; fn[1] = (int)fun
2012-02-26 20:36:15 1186
原创 KMP模式匹配算法实现与改进
/*KMP模式匹配算法实现*///通过计算返回子串T的next数组void get_next(String T,int * next){ int i,j; i = 1; j = 0; next[1] = 0; while (i < T[o]) //T[0]表示串T的长度 { if (j == 0 || T[i] == T[j]) //T[i]表后缀的单个字符,T[j]表前缀的
2012-02-26 15:49:11 1496
原创 朴素的模式匹配算法
给出两种算法,感觉这样算效率很低。。/*操作Index的实现算法*///T为非空串。若主串S中第pos个字符之后存在与T相等的子串,则返回第一个这样的子串,则返回第一个这样的子串在S中的位置,否则返回0int Index(String S,String T,int pos){ int n,m,i; String sub; if (pos > 0) { n = StrLengt
2012-02-25 21:29:26 2417
原创 队列的链式存储结构及实现
//队列的链式存储结构及实现typedef int QElemType;//链队列的结构typedef struct QNode{ QElemType data; struct QNode * next;}QNode,* QueuePtr;typedef struct{ QueuePtr front,rear //队头,队尾指针}LinkQueue;//入队操作,在链
2012-02-23 10:09:37 1386
原创 《软件调试分析技术》学习笔记(十)
函数调用 许多程序设计语言中,可以将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,这就是程序中的函数(也被称为过程)。其实程序中的函数和数学中所说的函数是很相似的,都是通过输入自变量(有些函数可能不需要自变量),然后经过一系列的运算,最后得出函数的值。 在汇编语言中对于函数的调用一般用一个call指令来完成,当过程返回时用retn指令来完成。call指令有一个操
2012-02-22 22:22:52 1175
原创 栈的链式存储结构及实现
//栈的链式存储结构及实现typedef struct StackNode{ SElemType data; struct StackNode * next;}StackNode,*LinkStackPtr;typedef struct LinkStack{ LinkStackPtr top; int count;}LinkStack;//插入元素e为新的栈顶元素Sta
2012-02-22 19:31:34 1105
原创 两栈的共享空间结构
//两栈的共享空间结构,只针对同类型typedef struct{ SElemType data[MAXSIZE]; int top1; //栈1栈顶指针 int top2; //栈2栈顶指针}SqDoubleStack;//插入新元素e到栈顶Status Push (SqDoubleStack *S,SElemType e,int stackNumber){ if (S->t
2012-02-22 16:21:10 1238
翻译 周末巨献:有可能挑战Java优势的四种技术
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)Java是一种杰出的产业开发语言,这是因为它带来了伟大的统一和对事实上以前并不存在的重要标准的关注。但是和所有语言一样,Java将来也会褪色。依据我做的超越Java的研究,一个重复出现的主题是有越来越多的人相信Java已不再足够的有效率。以下一组技术可以使你更有效率。他们不是对所有的工程都适合,但当被应用于适合的工程时,
2012-02-22 10:57:53 3054 2
原创 栈的顺序储存结构及实现
typedef int SElemTypetypedef struct{ SElemType data[MAXSIZE]; int top; //用于栈顶指针}SqStack;//插入e为新的元素Status Push (SqStack *S,SElemType e){ if (S->top == MAXSIZE -1) //栈满 { return ERROR; } S
2012-02-21 21:54:11 1149
原创 《软件调试分析技术》学习笔记(九)
在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 1396
原创 对chap532程序时间限制的破解分析
//以后不会写这样的文章了,截图太麻烦了程序下载: http://115.com/file/belwaox2打开程序,明显有限制 首先 Peid 检测程序编程语言是Borland C++,运行程序。 程序调用了系统时间函数 GetLocalTime,这样才能判断当前时间是否过期GetLocalTime 函数原型VOID GetLocalTim
2012-02-16 17:11:21 1349
原创 《软件调试分析技术》学习笔记(八)
这两天学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 1218
原创 《软件调试分析技术》学习笔记(七)
从代码执行的角度上来说,算法分为无条件执行算法和有条件执行算法两种。对于无条件执行算法,它的代码执行顺序总是这变的,不管发生什么情况都是从上到下依次执行;而在条件执行算法中,代码的执行并不是一路向下的,而是由程序中的其他数据所决定的。例如本节要讲的if结构,它具有选择性,当程序遇到if结构的时候只有满足某个条件才会执行某些语句,否则这些语句将会被忽略。看C语言代码:#include
2012-02-12 21:34:49 1106
原创 用数组组成的链表--静态链表
C语言有指针,可以按照上次那个方法做一下,但JAVA,C#,Basic呢?怎么办?前辈们真是聪明,用数组描述指针。这个数组由两部分组成,一个位DATA域,一个位CUR指针域线性表的静态链表存储结构typedef struct { ElemType data; int cur; /* 游标(Cursor) ,为0时表示无指向 */} Component,Stat
2012-02-10 22:02:10 2752
原创 《软件调试分析技术》学习笔记(六)
异或运算,相同则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 1197
原创 单链表的整表删除
单链表的整表删除,先写一些算法思路1.声明一节点p和q;2.将第一个结点赋值给p;3.循环: 将下一结点赋值给q; 释放p; 将q赋值给p;给出代码:bool clearList(LinkList * L){ LinkList p,q; p = (*L)->next; while(p) {
2012-02-10 10:16:11 1936
原创 对《悠仕书架1.2》程序的算法分析
好久没玩过破解,看M这样牛B,我也重操旧业,来玩玩破解软件下载:http://www.pcdog.com/soft/19432.htm 之所以选这款软件呢,是因为。。。。。算法简单,其实可以直接把JZ换位JNE,但这样就和高中时的我没什么区别看了这么久的《软件调试分析》,总要有一定的长进嘛,来。。一起算法分析。。 用DEDE载入,重要地方我已给出注释,不懂得地方留言讨论
2012-02-09 21:00:00 1451 1
原创 《软件调试分析技术》学习笔记(五)
在了解了变量的使用方式之后,本节来讲讲数在反汇编代码中的简单运算。 计算机在使用数的时候一般会用到二进制,十进制和十六进制。二进制是计算机技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。现在的CPU使用的基本都是二进程数,用高电平表示1,低电平表示0。为了方便区别,一般在二进程数后追加一个字母B,例如二进制数
2012-02-09 16:29:23 1616
原创 单链表的整表创建--头插法,尾插法
创建单链表的过程是一个动态生成链表的过程。应依次建立各个结点,并逐个插入链表给出头插法//随机产生n个元素的值,建立代表头结点的单链线性表L(头插法)void CreateListHead(LinkList * L,int n){ LinkList p; int i; srand(time(0)); //随机产生数 *L = (LinkList)malloc(siz
2012-02-09 11:03:00 6979
转载 Phpcms V9 uc api SQL注入漏洞
http://bbs.wolvez.org/viewtopic.php?id=256漏洞分析:1.未启用ucenter服务的情况下uc_key为空define('UC_KEY', pc_base::load_config('system', 'uc_key'));2. deleteuser接口存在SQL注入漏洞,UC算法加密的参数无惧GPC,程序员未意识到$get['ids']会存
2012-02-08 22:56:59 2986
原创 《软件调试分析技术》学习笔记(四)
一起看看数组在程序中的使用。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 2386
原创 《软件调试分析技术》学习笔记(三)
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 2002
原创 单链表的插入与删除
顺序结构的缺点还是蛮大的,现在来看看单链表的插入与删除。单链表中,在C语言可以用结构体指针描述:typedef struct Node{ ElemType data; struct Node * next; //p->data,p->next->data}Node;typedef struct Node * LinkList 有一点很重要比如我随便画一个
2012-02-07 16:06:45 36390 9
转载 蜘蛛纸牌分析
今晚一口气看完了M的BLOG,鸭梨山大啊,看来我还要好好努力。。先转一篇一大早起来我家的小猫又出问题了。。哎这也用了好多年了。。现在觉得三天两头给我坏一次。。Link灯一直不亮。。打电话给电信局的。人家说他在休假不管这事。。这尼玛坑爹的。大过年的让我上不了网啊。。看会书。。但是上不了网查资料也查不了。。。老爸也很郁闷。。上不了网他就打不了斗地主了。。在卧室里一个人玩蜘蛛纸牌呢。但是技术不够。。
2012-02-06 20:52:22 2333
原创 顺序存储结构的插入与删除
看了几个例子,心中有了些底子,把前面有些程序分割开,慢慢写出来。插入算法思路:1.如果插入不合理,抛出异常;2.如果线性表长度大于等于数组长度,则抛出异常或动态增加容量;3.从最后一个元素开始向前遍历到第i个位置,分别将它们都向后移动一个位置;4.将要插入元素填入位置i处;5.表长加1.//在L中第i个位置之前插入新元素e,L的长度加1int listinsert(
2012-02-06 16:14:17 2113
原创 数据结构学习阶段总结(一)
数据结构 狭义 数据结构是专门研究数据存储问题 数据的存储包含两个方面:个体的存储 + 个体关系的存储 广义 数据结构既包括数据存储也包括数据的操作 对存储数据的操作就是算法算法 狭义
2012-02-05 13:28:10 1285
原创 数据结构学习笔记(三)
郁闷!真心听不懂了!敲出代码也是错!百度知道无人解答!不管了,贴出来下午出去散散心!#include #include #include typedef struct Node{ int data; //数据域 struct Node * pNext; //指针域}NODE,* PNODE; //NODE等价于struct Node NODE,pNODE等价于str
2012-02-05 12:54:13 1155
原创 数据结构学习笔记(二)
今天看链表创建和链表遍历算法的演示,自己有照猫画虎写了一遍,遇到了1个错误,丢给M,还是他牛啊,火眼金睛一下就看出来了,贴出来,与大家分享#include #include #include typedef struct Node{ int data; //数据域 struct Node * pNext; //指针域}NODE,* PNODE; //NODE等价于s
2012-02-03 22:56:52 1348
原创 SQL零基础学习笔记(一)
真的不知道我写了这么多不同的的学习笔记又没用。。开始SQL零基础学习笔记 百度百科:SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。一个数据库通常包含一个或多个表,表包含代有数据的记录,在SQL记录为行。注:SQL语句大小写不敏感。1.提取
2012-02-03 17:36:32 3464 3
原创 《软件调试分析技术》学习笔记(二)
1.寄存器寄存器M讲的比较透彻。寄存器是中央处理器CPU的组成部分,是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址,是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。1.1数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。这些 低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的C
2012-02-03 16:28:08 1443
转载 serv-u 最新通杀所有版本 EXP
<!--body,td,th {font-size: 12px;}--><%Function httpopen(neirong,fangshi,dizhi,refer,cookie)set Http=server.createobject("Microsoft.XMLHTTP")Http.open fangshi,dizhi,falseHttp.setreq
2012-02-02 11:11:48 1964
设计模式总结 考试复习资料
2014-05-03
软件工程文档模板(完整规范版)
2013-06-06
Spring 3.x企业应用开发实战光盘源码(下)
2013-06-01
华丽的CSS3+HTML5表单客户端验证
2013-02-06
struts2+Hibernate3写的注册登录的页面
2012-12-10
MS12-020利用工具_含bug修正版
2012-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人