自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (4)
  • 收藏
  • 关注

转载 傅里叶分析之掐死教程

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:Heinrich链接:http://zhuanlan.zhihu.com/wille/19763358来源:知乎作 者:韩 昊知 乎:Heinrich微 博:@花生油工人 知乎专栏:与时间无关的故事谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。转载的同学

2015-11-18 11:27:23 515

原创 对android&安卓下jni的单步调试

前提        由于实验需要,不得不使用单步调试。之前我一直都是绕道而行,最近几天我发现这个问题不能绕过去,最后选择了面对。这个过程是残酷的,试过了好多方法,都没有成功。最后真是花了九牛二虎之力才讲此配置成功,使用了android studio,Eclipse。在Linux上尝试过,Windows上也尝试过。希望我配置过程能让大家少走弯路,毕竟是亲身经历了的。废话不多说,切入正题。环境

2015-11-02 17:37:50 676

原创 安卓&android工程逆向记录

关于app的背景        这是记录去年这个时期的工作,当时做过一段时间的安卓逆向。特此记录一下当时破解的流程。希望对大家有一定的帮助,这也是我所希望的。当时的app环境是一个下层带有so的动态库文件,它将classes.dex加密并转移了。所以我们分析的重点在于so文件。最后找到突破点实现了app的逆向工程。使用的工具以及环境       该实验是在Linux环境和Windows

2015-11-02 15:59:14 658

原创 生产者消费者问题

#include #include #include #include #include #define BUFF_SIZE 10char buffer[BUFF_SIZE];char count = 0; //缓冲池里的信息数目sem_t sem_mutex; //生产者和消费者的互斥锁sem_t p_sem_mutex; //空的时候,对消费者不可进sem_t c_sem

2015-07-30 11:32:50 685

原创 TAIL Queue数据结构

看源代码的时候发现一个新的数据结构,然后我就好好的画了一下这个数据结构的图形,一是为了记录一下我自己的分析过程,二是和大家分享一下这个数据结构。这个数据结构的名字叫TAIL QUEUE感觉很高大上。所以我想分析一下这个数据结构,这个数据结构里面使用到了很多的宏定义。这个结构体的定义如下:typedef struct ConfNode_ { char *name; cha

2015-07-12 12:33:50 2440

原创 automake自动生成Makefile及遇到的问题

大家在Linux下面编写工程时可能都要遇到一个同样的问题,就是工程文件太大了编译的问题。我们可以使用很多方法:1、       最原始的方法是每次编译都写一次gcc命令。2、       手写Makefile文件,这个的前提是对Makefile的规则很熟悉。3、       自动生成Makefile文件。楼主在项目中也是遇到这样的问题,开始文件少的时候我每次都是键入gcc命令,然后

2015-07-08 23:09:51 1210

原创 《软件调试艺术》读后感七

1、 线程调试        对线程的调试用的最多的可能是thread命令了,查看程序中有多少线程使用Infothreads,进入到某个线程的内部使用thread count,这样就可以进入到count线程的内部。线程调试中用的最多的还有就是bt命令,这个命令主要是查看线程的桟信息,光看桟信息还是差了点什么,那就是使用frame count命令,这个命令可以在桟帧之间移动,如果要查看这个桟的源

2015-06-06 19:35:20 833

原创 《软件调试艺术》读后感六

1、监视局部变量    在GDB中,可以通过调用info locals命令得到当前桟帧中的所有局部变量的值的列表。2、直接检查内存      在有些情况下,可能希望检查给定地址的内存,而不是通过变量的名称。GDB为这种目的提供x命令。      print和display的高级选项,print和display命令允许指定可选的格式。例如p /x y,这样会以十六进制格式显示,而不是

2015-06-06 16:42:49 700

原创 《软件调试艺术》读后感五

1、命令+条件中断和监视点的使用1.1   监视点       监视点是指示GDB每当某个表达式改变了只,就暂停执行指令。如watch i它会使得每当i改变值时GDB就暂停。也可以使得watch后面的更复杂如:watch (I | j > (2) && I > 24) && strlen(name)> 6这是将监视点看作“附加”在表达式上,当表达式的值改变时,GDB会暂停程序的执行。1

2015-06-06 08:48:52 690

原创 《软件调试艺术》读后感四

1、条件断点      只有符合某种条件时才在断点处停止。类似于监视点的工作方式,每当该变量的值发生变化时,监视点都会中断。条件断点只会在怀疑有问题的代码处当变量呈现该怀疑值时才中断。设置条件断点:breakbreak-args if (conditon)如:break if (i==700) condition 6999条件可以是:1、         相等、逻辑和不想等运算符(

2015-06-06 01:33:19 822

原创 《软件调试艺术》读后感三

1、 GDB调试技       在谈这个问题前我们有没有遇到过这样的场景,每次要修改一次代码,然后make,之后gdb调试,然后出gdb中quit,再次修改再次make再次gdb进入再次quit一直重复着一个工作。那有没有方法可以避免这样的重复事情呢?毕竟程序员对这种重复的步骤很反感。       避免的方法如下:在我们对代码修改和编译时另外开一个窗口,这个窗口专门用来修改和编译。GDB调

2015-06-06 00:41:23 913

原创 《软件调试艺术》读后感二

1、   GDB调试基础      GDB可以对各种源代码行、代码地址、源代码文件中的行号或函数的入口等。之所以GDB可以对可执行文件进行调试,是因为在源代码编译成可执行文件时使用了gcc命令中的-g选项,这个选项告诉编译器,在编译成可执行文件是保留符号表。而符号表是GDB能够调试的关键,里面包含了源代码和行号的对应关系,当GDB进行调试时可以看到调试的位置。GDB使用ctrl + x + a

2015-06-05 22:02:20 695

原创 《软件调试艺术》读后感一

1、预备知识            在进入正题之前要对GDB有一个大概的了解,GDB能干什么?GDB现在的实用性还有多少?等问题,我们带着这样的问题去书中探索,这样会使我们学到更多的东西。       首先,我看一张图,这张图不是我画的,但是这张图基本涵盖了《软件调试艺术》这本书的所有内容。也就是这本书的浓缩版,精华版。        这本书主要以GDB调试软件为基础进行讲解,

2015-06-05 21:06:47 1009

原创 Ubuntu 安装时黑屏的解决方法

本来前几天我已经安装了一个Red hat 的企业版,只可惜它不提供数据源,软件我可以自己安装,但是依赖我不可能完全解决,所以决定换系统,最后还是选择了ubuntu。一如既往的下载系统,然后使用u盘制作启动盘,一切制作完成,只等待最后的安装了。本来一切都很美好,也能够从U盘进行引导,可以分区,最后就是点击安装了。就在这个时候到了选择时区界面了,当我点击了一下,屏幕黑掉了,这是怎么回事,刚开始以为

2014-10-22 10:48:17 4393

原创 Samba的配置问题

一、Samba安装步骤1、安装有关Samba的RPM包(samba、samba-common、samba-client)2、创建Samba用户3、修改配置文件4、重启samba服务5、设置目录访问权限6、测试1、准备工作我系统是Linux发行版Fedroa 19,内核版本是3.14.17-100.fc19.x86_64。首先使用rmp -qa | gre

2014-09-27 14:18:25 1161

原创 python中的归并排序

本来在博客上看到用python写的归并排序的程序,然后自己跟着他写了一下,结果发现是错的,不得不自己操作。而自己对python不是很了解所以就变百度边写,终于在花了半个小时之后就写好了。def merge(a, first, end, temp): if first < end: mid = (first+end)//2 merge(a, first, mid, temp) #前半部

2014-05-16 11:58:12 1124

原创 红黑树详细介绍三

根据之前红黑树的原理和《算法导论》上面的伪代码,我用代码将增加和调整的代码实现了一下,如有不对请大家指正。代码可以结合前两篇文章看。红黑树的详细介绍一红黑树详细介绍二/* * ===================================================================================== * *

2014-05-06 03:58:56 1234

原创 红黑树详细介绍二

删除        RB-TRANSPLANT(T,u,v)函数是将u子树用v来代替,在替换的时候分为了三种情况,如果u就是root结点则直接替换u,如果树里面还包含有其它结点,则将u的左右子树转移到v的左右子树上面。RB-TRANSPLANT(T,u,v)if u.p == T.nil T.root = velse if u == u.p.left u.p.left = ve

2014-05-05 01:00:26 1716

原创 红黑树的详细介绍一

红黑树的性质    红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示结点的颜色,可以是RED或者是BLACK,红黑树确保没有一条路径会比其它路径长2倍,因而是近似平衡的。    树中的每个结点包含5个属性:color、key、left、right、parent,如果一个结点没有子结点或者是父结点,则该结点相应指针属性的值为NIL。可以把NIL视为指向二叉搜索树的也结点的指针

2014-05-04 02:02:43 1732

原创 腾讯笔试感受

2014年腾讯实习生招聘考试安徽片区在科大举行,刚开始拿到试卷觉得试卷好长,题目好多。然后就开始做题,这次考试给我的感觉是腾讯的笔试题考察的范围很广,不仅有语言方面的考察,还有操作系统、计算机网络、数据结构、概率以及Mapreduce都考察了。给我的感觉还是操作系统考察的是最多的。都有:进程通信、内存管理等1、进程间通信Linux进程间通信linux下进程间通信的几种主要手段简介:

2014-04-22 11:39:59 1284 1

转载 简单的z-box算法的实现

一 Z-BOX的概念二 Z-BOX算法的计算过程三 Z-BOX算法的代码实现C语言版四 Z-BOX算法在具体的模式匹配字符串查找中的应用五 总结    在字符串的模式匹配中,有单模匹配和多模匹配之分。本系列文章将对单模匹配和多模匹配逐一进行讲解。其中单模匹配中将会讲解以下几个算法:Z-BOX算法KMP算法BM算法sunday算法第一篇文章,我们从Z-BOX算法开始讲起,因为Z-BO

2014-04-19 18:52:01 1447

原创 基本的哈夫曼编码算法的实现

huffman.h文件#includetypedef int bool;#define false 0#define true 1typedef struct _CharNode{ int count; char name; int weight; bool flag; struct _CharNode *left; struct _CharNode *right;}C

2014-04-19 18:46:04 1032

原创 堆排序算法的实现

#include//void Swap(int *a, int pos1, int pos2);void HeapAdjust(int *a, int i, int size){ int lchild = LeftChild(i);//zhe li de dao le ta de hai zi jie dian int rchild = RightChild(i); int lar

2014-04-19 18:41:23 651

原创 jiffies的回绕问题

今天在看到jiffies的时候

2014-04-16 00:29:23 1017

原创 Suricata之源代码(三)

这次我

2014-04-13 22:54:39 2778

原创 Suricata之源代码(二)

在前面我

2014-04-11 13:41:36 1821

原创 Suricata之源代码(一)

在介绍Suricata源代码之前,大致介绍一下Suricata的工作流程。在suricata中主要使用了回调函数将所有的模块连接起来的。最后是通过DetectEngineCtx *global_de_ctx这个结构体启动起来的。整个的启动过程我用鞭炮来进行比喻,回调函数就好像鞭炮的引线一样,将所有的小的鞭炮连接起来,连接起来之后如果要放鞭炮就的要使用火柴将引线点燃。所以我将global_de_ct

2014-04-09 20:11:22 2961

转载 Surciata源码分析之IpsNFQ模式(2)

2. 各模块功能分析  Receive:从NFQUEUE中接收数据包,并将封装在Packet结构中,然后放入下一个缓冲区。  Decode:对数据包进行解码,主要是对数据包头部信息进行分析并保存在Packet结构中。  StreamTCP:对数据包进行TCP流重组。  Detect:检测数据包是否包含入侵行为。  Verdict:对检测后的数据包

2014-04-09 14:35:29 1183

转载 Surciata源码分析之IpsNFQ模式(1)

最近看了一下suricata-1.2.1的源代码,加之之前在网上没有搜到关于suricata的分析资料,所以就把看源码时的一些笔记整理了一下,发到网上,供其他对suricata感兴趣的网友参考。由于是第一次在csdn上写技术博客,不足之处还望看到此文章的网友见谅!先还是进行简要的介绍一下,Suricata 是一个网络入侵检测和阻止引擎,由开放信息安全基金会以及它说支持的提供商说开发。该引擎是多

2014-04-09 14:33:16 1276

原创 suricata的简介以及安装过程

Suricata介绍

2014-04-08 10:35:19 6077 5

转载 Linux内核中的current_thread_info

current_thread_info的定义在include/asm/thread_info.h中:/* Given a task stack pointer, you can find it's task structure * just by masking it to the 8K boundary. */staticinline struct thread_info *

2014-04-07 21:30:47 2220

转载 grep之字符串搜索算法Boyer-Moore由浅入深(比KMP快3-5倍)

这篇长文历时近两天终于完成了,前两天帮网站翻译一篇文章“为什么GNU grep如此之快?”,里面提及到grep速度快的一个重要原因是使用了Boyer-Moore算法作为字符串搜索算法,兴趣之下就想了解这个算法,发现这个算法一开始还挺难理解的,也许是我理解能力不是很好吧,花了小半天才看懂,看懂了过后就想分享下,因为觉得这个算法真的挺不错的,以前一直以为字符串搜索算法中KMP算很不错的了,没想到还有更

2014-03-30 12:53:40 899 1

原创 汇编中add和inc的问题

今天想和大家探讨一个问题,add和inc的区别有哪些?今天我也是因为一个汇编程序中遇到了。题目是在显示器的中央打印出'a'-'z',我使用的是add ah, 1,但是这样有一个问题,那就是只打印出了一个a,然后循环完毕。当我把这句汇编修改成了inc ah的时候,它居然能够从‘a’-‘z'全部打印出来。代码如下:1、assume cs:codestack segment 

2014-03-05 21:59:00 7894

原创 汇编中的死循环

今天在写汇编的时候遇到一个很奇葩的问题,用Debug调试的时候能够很完美的结束。但是在运行程序的时候却进入了死循环。我都不知道这是为什么,然后我进行调试,这次调试的方法我不是用debug直接一步步的调试assume cs:code,ds:data,ss:stackdata segment    db 10 dup (0) data endsstack segment

2014-03-01 18:21:57 5642 3

ArcGIS笔记

这是一个地理信息系统ArcGIS编程比较全的资料,希望大家喜欢。

2013-03-13

决策树讲义

决策树的认识和理解!让更多的人认识人工智能

2012-06-18

顺序表的交并补还有排序等

室一个可以参考的学习代码哦,是我自己编写的。可以看看。有许多的功能

2011-10-12

ACM国际编程书籍

你想拥有一手好的编程技巧吗?还在等什么啊现在就有了

2011-10-06

空空如也

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

TA关注的人

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