自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(21)
  • 收藏
  • 关注

原创 利用call传递静态参数

今天逆向的时候出现了一段代码,貌似很乱无意义:00402E28   E8 09000000     CALL t.00402E3600402E2D   61              POPAD00402E2E   64:76 61        JBE SHORTt.00402E92                    00402E31   70 69 

2009-08-18 10:40:00 531

原创 获取kernel32基址的另两种方法

病毒运行时可能会用到某些API,但如果导入表中没有的话,病毒的可移植性就不能保证。已经知道ntdll.dll和kernel32.dll是每个进程都需要加载的,如果知道了kernel32在进程中的地址,就能找到LoadLibrary和GetProcAddress从而加载其他dll文件并调用里面的API。以前学到过利用PEB结构来获得kernel32在进程中的基址其实还有两种常用的方法

2009-08-14 10:43:00 1934

原创 病毒的重定位技术

早就知道这个了,但自己总结出来感觉透彻了不少。PE文件病毒感染时会在宿主上附加代码,但每次感染内存地址不同,修改代码内的地址是不现实的。所以就有了重定位技术,利用偏移值的确定性使代码可用。 重定位代码很短:JMPrebase            ;1rebase:                  ;2POP EBX              ;3SUB EB

2009-08-13 10:48:00 1918

原创 一周学习总结5.18

昨天居然忘记写了。相信总有一天我会懒死的。晚上被蚊子咬得好惨啊~本周基本没做题,乱七八糟的事情很多。 不过周末参加了校赛的初赛,也不算是完全废掉吧。 周六去试机,都是水题。周日是初赛,1个半小时就把5道简单题干掉了。后来我就开始写石同学出的一题,题目爆长,BS他一下……给一些点的相对位置,求他们的绝对坐标。还是蛮明显的并查集啦,然后就一直写啊一直写。越写发现细节越多,写

2009-05-18 07:39:00 571

原创 一周学习总结4.26

二分查找,在stdlib.h中有相应的函数bsearch,原型定义为:void *bsearch(const void *key,const void *base, size_t nmem, size_t size, int (*comp)(const void *, const void*));comp函数根据需要自己定义。 这周就是乱做题了,没有很明确的学什么。大概分了一下

2009-05-10 19:06:00 1558

原创 一周学习总结5.3

这周废了,说是100题之后休息一下,结果一睡不醒哦……开始做USACO啦~基本没学什么,随便做了几题。 USACO Your Ride Is Here:没啥可说的,只是用来熟悉一下IO。我很自作聪明的用了feof(),结果白白错了一次,囧啊…… USACO Greedy Gift Givers:没难度的题,模拟整个过程就好了。 USACO Friday the

2009-05-10 19:06:00 642

原创 一周学习总结5.10

最近真的没在学什么,题也做得少了。感觉自己就是会一边喊忙死啦一边偷懒的人……数学建模在学神经网络,还不是很理解。网上搜到不错的文章《数字神经网络系统》:http://www.funnyai.com/AI/Book/DigtalNN/Index.html我应该尝试实现一个,感觉只是看的话理解很浅薄。 今天刘大牛回来了,很有激情的样子,给我们讲到6点半……还是有很多孩子去听

2009-05-10 19:06:00 491

原创 一周学习总结4.19

Dijkstra算法,求单源最短路径的算法。本质上是一种广度优先搜索的过程。 Prim 算法,另一种求MST的经典方法。与dij的算法很类似。使用二叉堆构造的最小优先级队列,可以改进算法的时间界。 Heap,二叉堆。可以进行堆排序和最大(最小)优先级队列。能够在O(lgn)的时间内插入或修改堆中元素,并保持堆的性质。 Ford-Fulkerson算法,求最大流的基本算法。每次迭代中找出

2009-04-21 12:26:00 777

原创 一周学习总结4.12

主要是做图论floyd-warshall算法,是用来求每对结点间的最短路径的动态规划算法。(黑书P307)最短路径具有最优子结构,设d[i,j,k]是在只允许经过结点[1…k]的情况下,i到j的最短路径。那么有两种情况:如果最短路径经过k,则d[i,j,k]等于d[i,k,k-1]+d[k,j,k-1]如果最短路径不经过k,则d[i,j,k]等于d[i,j,k-1]可得到状态转

2009-04-21 12:25:00 629

原创 一周学习总结4.5

这周在做推荐的50题。主要看了状态空间搜索。状态空间是以状态为结点,以状态转移为有向边的图。一个可行解就是一条从起始结点出发到目标状态集中任意结点的路径。搜索主要分为盲目搜索、启发式搜索以及敌对搜索。还有很重要的是搜索中的剪枝。 做的题目用的都是深度优先搜索。POJ 1141 Brackets Sequence:括号序列。是LRJ黑书上DP的第一个例题。与算导上的矩阵链乘基本上相同

2009-04-21 12:24:00 744

原创 一周学习总结3.28

今天下午是练习赛,明天正式比赛。应该没时间再做题了,先总结一下吧。这周做的题还是蛮多的。5天11题。主要还是DP。还做了一题DFS和一题哈夫曼树。DFS是深度优先搜索。如其名,该算法是尽可能“深”地搜索一个图。(算导22.3)哈夫曼树是一种贪心的算法,可以使带权值和最小。(算导16.3)呃,不知道怎么说,感觉似懂非懂。还是思考的不够,练习的也不够。现在最缺的就是时间了……

2009-03-28 09:21:00 617

原创 一周学习总结3.22

这周主要学习了动态规划。动态规划用于解决多阶段决策最优化问题。理论基础是R.Bellman的“最优化原理”(Principle of optimality):“一个过程的最优决策具有这样的性质:即无论其初始状态和初始决策如何,其今后诸策略对以第一个决策所形成的状态作为初始状态的过程而言,必须构成最优策略”。  动态规划的适用条件:(1)状态必须满足最优化原理; (2)状态必须满足无

2009-03-22 21:43:00 759 2

原创 一周学习总结3.15

这周主要学习树状数组和KMP算法 对于一般的数组a[1]…a[n],求和操作要O(n),修改的时间为O(1)。当重复进行m次修改再求和时,时间复杂度会达到O(m*n)。在m, n非常大的情况下是难以忍受的。于是便产生了树状数组。利用一种很巧妙的方法使求和与修改都为O(logn)。基本操作包括求二进制数末尾0的个数lowbit(),修改plus(),求和sum()。具体就不描述了,百

2009-03-15 09:15:00 858

原创 一周学习总结

这周主要学习了并查集。图论方面看了增广路最大流。没怎么懂。并查集是一种用于不相交集合的数据结构。(算法导论第21章)目前已知的,渐近意义上最快的是森林实现。其实和堆类似,利用数组进行存储。节点内容为其父节点的标号。主要包括三种操作。Makeset( ) 初始化数组和相应的辅助结构。Findset( ) 递归或非递归地循环寻找根节点。为防止森林退化为链式,应用了路径压缩来减少深度

2009-03-08 09:43:00 1756 1

原创 POJ 3299——Humidex

据说是水题,就无聊写一下。 结果把我郁闷到了,一开始没读清题目,说的是T,D,H中任意给两个求第三个,我还以为是给了T,D求H。。。结果WA。。。 然后修改,分6种情况(给定TD,TH,DT,DH,HT,HD)分别求。结果还是WA,无语。把式子检查了N便,找不出错。 找错的曲折经历就不描述了,反正最后发现是自己调用子函数的时候把本来的double型变成int型了。丢失了

2009-02-28 13:43:00 567

原创 POJ 1012——Joseph

就是joseph问题的一种形式。 一开始用顺序表,但循环不好控制。后来改用循环链表模拟整个情况,但用时太久了。最后发现可能性只有14种,就全求出来,打表过了。

2009-02-26 12:50:00 535

原创 POJ 1156——The Doors

简单的计算几何+Dij 一开始想瞄准目标直接走,判断遇到墙就选择比较近的口子继续走。结果想得太简单了,这样根本没办法证明最短路径。 后来明白了,应该先通过线段不相交判断各点间是否能直达。能直达的就加入到图中,最后用Dij求最短路径就好了。  

2009-02-26 12:42:00 431

转载 POJ 1080——Human Gene Functions

就是LCS,把最大子序列转化成分数。。。用 - 填充,使相同的字母对应,求各种情况的分数,然后DP得到最大的。 我的DP……唉,还早得很呐。  

2009-02-26 11:59:00 432

原创 POJ 1113——WALL

今天在看算法艺术到凸包,找了这题来做。算是入门题。  利用melkman算法(当然也可以用其他方法,但melkman应该说是最优的了)得到凸包,计算周长。加上转角处的圆弧(总共合起来就是一个圆)长。 四舍五入就是结果。  说起来很简单,但实际上做了很久,到现在也melkman算法也没理解清楚。但作为第一次接触还算不错了吧。明天继续努力。 今天出四级成绩。很颓

2009-02-24 22:23:00 888

原创 蒙特卡洛方法

今天突然看到的一个方法,感觉还蛮好玩的。网上搜了点介绍。 比较通俗的:蒙特卡罗(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第一次世界大战进研制原子弹的“曼哈顿计划”。该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。  Monte Carlo方法

2009-02-23 20:43:00 2914 1

原创 散列表学习笔记

因为下学期要学数据结构,就先看算法导论的这个部分。栈,队列,树,链表都很简单,以前学过,就不关注了。然后看散列表,很郁闷,比较难懂。连续看了好几天,又在网上搜了别人的文章,总算有所了解。就写个学习笔记。散列表,是一种数据结构,主要用于快速查找。结构可以这样定义:struct hashnode{         keytype key;      //关键字数据类型可为任意     othertyp

2009-01-06 10:08:00 855 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除