SEH 与minidump http://msdn.microsoft.com/en-us/library/s58ftw19(v=vs.80).aspxThe following syntax describes a try-except statement:__try { // guarded code}__except ( expression )
在程序中给windows firewall添加例外,不弹警告 Exercising the Windows Firewall using C++, PowerShell and nsis. 프로그래밍 2009/12/29 03:45http://blog.naver.com/ships95/120098138849The following code example exercises
c++写入应用程序日志(Event Log ) c++写入应用程序日志(Event Log )分类: C++程序开发2010-12-03 14:16 410人阅读 评论(0) 收藏 举报日志文件是操作系统的一部分,那么肯定有应用程序编程接口(API)来支持建立日志记录 实例: HANDLE h; if ((h = RegisterEventSource(NULL,TEXT("MetaLive"))) == NU
写出健壮的Bash脚本 许多人用shell脚本完成一些简单任务,而且变成了他们生命的一部分。不幸的是,shell脚本在运行异常时会受到非常大的影响。在写脚本时将这类问题最小化是十分必要的。本文中我将介绍一些让Bash脚本变得健壮的技术。使用set -u你因为没有对变量初始化而使脚本崩溃过多少次?对于我来说,很多次。chroot=$1 ... rm -rf $chroot/usr/share/doc
Windows下面制作绿色版的Python环境 首先在某个地方安装安装版的Python,比如虚拟机里,我装的是“python-2.7.1.msi”,然后把安装目录整个拷过来备用。之所以安装版无法做成绿色版,是因为其中的三个主要文件“python.exe”、“pythonw.exe”和“python27.dll(安装在system32目录中)”都依赖于“msvcr90.dll”这个非常恶心的东西。我们需要把它绿色化。下载并解压缩源代码包,
在windows上搭建一个SSH隧道Set up a Windows SSH tunnel in 10 minutes or less) Set up a Windows SSH tunnel in 10 minutes or less9 May, 2008 softwareHere are step-by-step instructions for setting up a quick and dirty SSH tunnel to another network. This gives you the ab
调试Release发布版程序的Crash错误 调试Release发布版程序的Crash错误http://blog.sina.com.cn/s/blog_48f93b530100fsln.html 在Windows平台下用C++开发应用程序,最不想见到的情况恐怕就是程序崩溃,而要想解决引起问题的bug,最困难的应该就是调试release版本了。因为release版本来就少了很多调试信息,更何况一般都是发布出去由用户使用,cras
为程序添加自动发送Email功能 为程序添加自动发送Email功能 (2009-09-19 00:21:31)转载▼标签: smtp email it分类: 开发 最近在开发中要为部门的软件产品加上crash report功能,研究了很多关于Windows平台下的debug技术。最终方案为minidump file
sourceforge.net被GFW挡住后的访问方法--google -gwt 1、通过镜像站 http://mirror.optus.net/sourceforge/ http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/ 2、通过Google代理(虽然是针对手机上网的,但是PC上的浏览器也可以访问) http://www.google.com/gw
N-CodeHook__detours About N-CodeHookN-CodeHook is a small template based C++ library which allows you to hook into functions via inline patching.For some background info see the blog post or read the paper from the
windows网络性能测试NetPerf Q: I am running netserver on Windows (XP x64) and I am getting this error messaeg:C:\>m:\mpi_db\svn.phoenix\trunk\scriptsetperfwin\x86_64etserver.exenetserver: fopen of debug file as new stdou
开发Windows 2000/XP下的防火墙-IPFilter技术介绍 开发Windows 2000/XP下的防火墙作者:Jesús O翻译:PowerCPP下载本文配套源代码 介绍如果你决定开发LINUX下的防火墙,你会找到很多免费的信息与源代码。但如果开发WINDOWS平台下的防火墙会有点困难,找到相关信息与代码都简直是不可能的任务。因此我决定写这篇文章介绍在WINDOWS 2000/XP下开发防火墙的简单方法。 背景在
Code Review Checklist Code Review ChecklistAdded by OpenMRS Wiki, last edited by Michael Downey on Aug 27, 2010 (view change)Code review should focus on seeing that coding conventions
输出信息到DEBUGVIEW窗口 TRACE宏对于VC下程序调试来说是很有用的东西,有着类似printf的功能;该宏仅仅在程序的DEBUG版本中出现,当RELEASE的时候该宏就完全消息了,从而帮助你调式也在RELEASE的时候减少代码量。使用非常简单,格式如下:TRACE("DDDDDDDDDDD");TRACE("wewe%d",333);同样还存在TRACE0,TRACE1,TRACE2。。。
Linux Kernel Tainted Kernel TaintedPosted January 6th, 2008 by jfinstromThe Linux kernel maintains a "taint state" which is included in kernel error messages. The taint state provides an indication whether
关于使用netlink message and attributes interface的建议 关于使用netlink message and attributes interface的建议2010-07-31 12:44author: jonathan本文档的CopyRight归jonathan所有,可自由转载,转载时请保持文档的完整性。/*-------------------------------------------------------
kernel_read http://lxr.oss.org.cn/source/fs/exec.c798 int kernel_read(struct file *file, loff_t offset,799 char *addr, unsigned long count)800 {801 mm_segment_t old_fs;802
netlink 内核与用户层互通信 skb常用操作函数,比较容易弄混skb_put : skb->tail += len, skb->len += lenskb_pull: skb->data += len, skb->len -= lenskb_push: skb->data -= len, skb->len += len内核版本Linux2.6.38,编
How to get an X11 Window from a Process ID? http://stackoverflow.com/questions/151407/how-to-get-an-x11-window-from-a-process-idUnder Linux, my C++ application is using fork() and execv() to launch multiple instances of OpenOffice so as t
LINUX netlink机制 http://www.cnblogs.com/iceocean/articles/1594195.htmlNetlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE
深入分析 Linux 内核链表 list_entry... http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插
.mod.c是什么文件,及内核模块Makefile模板 http://hi.baidu.com/justin_huangjh/blog/item/a211254502d73b3b87947313.html我们可以为代码清单4.1的模板编写一个简单的Makefile:obj-m := hello.o并使用如下命令编译Hello World模块: make -C /usr/src/linux-2.6.15.5/ M=
why (iphdr->ihl)*4 or (iphdr->ihl)<<2? naihe2010 发表于 2010-4-13 06:47struct iphdr {#if defined(__LITTLE_ENDIAN_BITFIELD) __u8 ihl:4, version:4;#elif defined (__BIG_ENDIAN_BITFIELD) __u8
用dropbox做私有git服务器 两样都用过的人,看标题大概就明白了。这两天写代码,自己的代码,不想拿到github去公开,但是又没钱去买私有的git hosting 服务,突然想起咱有dropbox。方法很简单,在dropbox的目录里面用git init建立一个repository,然后,在项目目录里 面(当然也是个git目录),使用git remote add把这个目录加为远程源,git push下,
使用call_usermodehelper在Linux内核中直接运行用户空间程序 by沈东良/良少http://blog.csdn.net/shendl2011.07.19系统初始化时kernel_init在内核态创建和运行应用程序以完成系统初始化 内核刚刚启动时,只有内核态的代码,后来在init过程中,在内核态运行了一些初始化系统的程序,才产生了工作在用户空间的进程。/* This is a non __ini
RedHat安装Gcc.4.1.2 kernel-headers-2.6.18-194.el5.i386.rpmglibc-common-2.5-49.i386.rpm[14:04:14] ChingLiu YU: glibc-2.5-49.i686.rpm[14:04:22] ChingLiu YU: glibc-headers-2.5-49.i386.rpm[14:06:03] ChingLiu YU:
下图为 TCP/IP 协议驱动程序 (Tcpip.sys) 及其用于在 Windows XP Service Pack 2 和 Windows Server 2003 Service Pack 1 转自TCP/IP 数据包处理路径 下图为 TCP/IP 协议驱动程序 (Tcpip.sys) 及其用于在 Windows XP Service Pack 2 和 Windows Server 2003 Service Pack 1 中处理 IP 数据包的相关组件的简要示意图。下列组件可处理 IP 数据包:IP 转发 为发送或转发的数据包确定下一跃
制定测试计划 http://ir.hit.edu.cn/~car/programming/rup/process/activity/ac_pltst.htm#Identify Requirements for Test活动: 制定测试计划目的收集和组织测试计划信息。创建测试计划。步骤确定测试需求评估风险制定测试策略确定资源创
Windows/Linux下C/C++内存泄露检测工具 http://hi.baidu.com/irenbest/blog/item/6353c7fdb3d77140d7887d13.html一 Window下的内存泄露检测(以VC++环境为例)灵活自由是C语言的一大特色,但这个特色也难以避免的带来一些副作用,比如内存泄露。众所周知,内存泄露的问题比较复杂,程序正常运行时你看不出它有任何异常,但长时间运行或在特定条件下特定操作重复多
使用NPAPI编写浏览器插件的调用本机上的程序 使用NPAPI编写浏览器插件的源码实例code:http://download.csdn.net/detail/echoisland/3878906用于种种原因,最近对制作浏览器(chrome,firefox)的插件非常感兴趣搜了一下,讲的几乎全都是在讲的方法和API,找个简单可以运行的代码实例,还真是难!不过最终还算幸运,终于找一个例子(h
NPAPI开发详解,Windows版 NPAPI开发详解,Windows版本文通过多图组合,详细引导初学者开发NPAPI的浏览器插件。如需测试开发完成的插件请参考http://mozilla.com.cn/kb/dev/A.88/1. 准备工作开发工具本例使用的是visual studio 2008 英文版,下图是关于信息 Windows SDK本例使用Windows7操作系
linux内核ipv4网络部分分层结构及涉入源文件 http://hi.baidu.com/amy_yeni/blog/item/c54003004d9a080b738da5b3.htmllinux内核ipv4网络部分分层结构:BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件主要有:/net/socket.c /net/protoco
linux 内核网络,数据接收流程图 4.3 数据接收流程图各层主要函数以及位置功能说明: 1)sock_read:初始化msghdr{}的结构类型变量msg,并且将需要接收的数据存放的地址传给msg.msg_iov->iov_base. net/socket.c 2)sock_recvmsg: 调用函数指针sock->ops->recvmsg()完成在INET Soc
linux 内核网络,数据发送流程图 4.2 数据发送流程图各层主要函数以及位置功能说明: 1)sock_write:初始化msghdr{}结构 net/socket.c 2)sock_sendmsg:net/socket.c 3)inet_sendmsg:net/ipv4/af_net.c 4)tcp_sendmsg:申请sk_buff{
Libpcap BPF(BSD Packet Filter)包过滤机制 http://hi.baidu.com/ahtaria/blog/item/969ae4447eaa59076a63e57d.htmlLibpcap 重点使用 BPF(BSD Packet Filter)包过滤机制,BPF 于 1992 年被设计出来,其设计目的主要是解决当时已存在的过滤机制效率低下的问题。BPF的工作步骤如下:当一个数据包到达网络接口时,数据链路层的驱动会把它向系
Linux Netfilter实现机制和扩展技术 http://www.ibm.com/developerworks/cn/linux/l-ntflt/2.4.x的内核相对于2.2.x在IP协议栈部分有比较大的改动, Netfilter-iptables更是其一大特色,由于它功能强大,并且与内核完美结合,因此迅速成为Linux平台下进行网络应用扩展的主要利器,这些扩展不仅包括防火墙的实现--这只是Netfilter-ipt
ubuntu 10.04 编译安装最新版本linux-2.6.34内核 17号linux-2.6.34内核发布,带来了一些更新,想升级的朋友可以按照以下方法第一步:准备工作打开终端获得root权限:sudo su然后安装编译内核时需要的工具:apt-get install build-essential kernel-package libncurses5-dev libqt3-headersbuild-esse
Linux内核bridge浅析 Linux网桥模型: Linux内核通过一个虚拟的网桥设备来实现桥接的,这个设备可以绑定若干个以太网接口设备,从而将它们桥接起来。如下图所示:网桥设备br0绑定了eth0和eth1。对于网络协议栈的上层来说,只看得到br0,因为桥接是在数据链路层实现的,上层不需要关心桥接的细节。于是协议栈上层需要发送的报文被送到br0,网桥设备的处理代码再来判断报文该被转发到eth0或是eth1
深度探索套接字缓冲区 sk_buff skb http://blog.csdn.net/aaa6695798/article/details/4879271 套接字缓冲区用结构体struct sk_buff表示,它用于在网络子系统中的各层之间传递数据,处于一个核心地位,非常之重要。它包含了一组成员数据用于承载网络数据,同时,也定义了在这些数据上操作的一组函数。下面是其完整的定义: struct sk_buff {
学习如何在netfilter上开发一个自定义hook 记录相关网址: 1、Linux netfilter Hacking HOWTO http://www.netfilter.org/documentation/HOWTO/netfilter-hacking-HOWTO.html#toc3 2、CSDN上一篇参考博文:
Writing Loadable Kernel Modules using netfilter hooks (in-depth HOWTO) – Part 1 http://fcns.eu/2010/02/netfilter-hooks/keyword:write new netfilter moduleNote: This article was inspired by the lack of updated documentation on how to write proper netfilter kernel modules.
Windows系统文件结构 ├—WINDOWS │ ├—system32(存放Windows的系统文件和硬件驱动程序) │ │ ├—config(用户配置信息和密码信息) │ │ │ └—systemprofile(系统配置信息,用于恢复系统) │ │ ├—drivers(用来存放硬件驱动文件,不建议删除) │ │ ├—spool(用来存放系统打印文件。包括打印的色彩、打印预存等) │ │ ├—wbe
Linux的timerfd分析 http://blog.csdn.net/walkingman321/article/details/6162055timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符,所以能够被用于select/poll的应用场景。1. 使用方
15.2基类与派生类的定义 动态绑定在C++中,通过基类的引用/指针调用虚函数时,发生动态绑定。基类的引用或指针既可以指向基类的对象也可以指向派生类的对象,这一事实是动态绑定的关键。用引用或指针调用的虚函数在运行时确定,被调用的函数是引用或指针当前所指对象的实际类型所定义的。访问控制pu
C++中的临时对象 http://blog.chinaunix.net/space.php?uid=576762&do=blog&cuid=316503我们知道在C++的创建对象是一个费时,费空间的一个操作。有些固然是必不可少,但还有一些对象却在我们不知道的情况下被创建了。通常以下三种情
函数调用约定与函数名称修饰规则--VC 作者:星轨(oRbIt) E_Mail:inte2000@163.com 转载请注明原作者,否则请勿转载 使用C/C++语言开发软件的程序员经常碰到这样的问题:有时候是程序编译没有问题,但是链接的时候总是报告函数不存在(经典的LNK 2001错误
隐式类型转换&& 负数的补码 http://www.cppblog.com/suiaiguo/archive/2009/07/16/90228.html隐式类型转换&& 负数的补码 偶然看到一道C++面试题:void foo(void) { u
获得目录的file descriptor. 最近的模块中要用到 openat .其它原型为:(int dfd, const char __user *filename, int flags, int mode);第一个参数 是,dfd,找了许久都没找到怎样获得目录文件描述符,还是在google code searc
Linux Security Module的注册层次 Linux Security Module的注册层次 ===================================================作者:ietf AT doit.com.cn所有源文件来自于linux kernel 2.6.20请在G
Security-Enhanced Linux(SELinux) http://space.doit.com.cn/45811/viewspace-2096.htmlSecurity-Enhanced Linux(SELinux),这在linux2.6的内核中,是你不得不关注的对象。无论是文件系统还是网络接口,到处都能不经意的瞥到它
使用kprobes,截获execve系统调用,更谨慎的hook syscallTable的写法 转载,原文出处:http://blog.chinaunix.net/u/548/showart.php?id=386423关于截获execve等系统调用,很久以来存在一个问题:新函数不能直接调旧函数,否则导致stack不平衡,出错。曾经有高人用一串的汇编代码去
什麼是 "asmlinkage"?--syscall原型说明 http://www.jollen.org/blog/2006/10/_asmlinkage.html什麼是 "asmlinkage"?jollen 發表於 October 26, 2006 4:15 PM有網友來信
使用pthread 线程退出时自动释放资源 线程退出时自动释放资源今天碰到一个问题:主线程pthread_create一个子线程A,子线程pthread_mutex_lock,然后调用其他的函数fun,最后从fun返回后再pthread_mutex_unlock.
linux内核中用d_path得到绝对路径名 http://blogold.chinaunix.net/u2/86590/showart_2185876.htmllinux内核中用d_path得到绝对路径名Linux 内核的d_path()函数转换目录数据结
C语言循环的小艺术 http://blog.csdn.net/csdn_zc/article/details/67769291. 质数判断对于这个,很多人可能会直接这样写:view plainint isPrime(int n)
读LDD3,内存映射与DMA--PAGE_SHIFT,页帧号。 一,linux系统处理的地址类型1,用户虚拟地址:这是用户空间程序见到的常规地址。每个进程都有自己的虚拟地址空间2,物理地址物理地址用于处理器和系统内存之间3,总线地址总线地址在外围总线和内存这间使用4,内核逻辑地址内核逻辑地址组成了内核的常规地址
简明Vim练级攻略 简明Vim练级攻略2011-09-08 10:33 | 2586次阅读 | 来源:酷壳网 【已有0条评论】发表评论关键词:Vim,练级攻略 | 作者:陈皓 | 收藏这篇资讯导读:本文来自《Learn Vim Progressively》,译文来
Linux Memory Mapping--mmap kernel 2.6 近几天有个项目需要实现用户层与内核共享内存。在前几篇博客中找到的均是kernel2.4 的。实现过程中,改的痛苦。对kernel源码才,勉强搞定。后来在此网站(http://www.scs.ch/~frey/linux/memorymap.html)发现原来有一个demo:
Avoid memory copying between user space and kernel space http://www.linuxforums.org/forum/kernel/158548-avoid-memory-copying-between-user-space-kernel-space.html1. you allocate memory in the ke
Kernel Space - User Space Interfaces_Mmap http://people.ee.ethz.ch/~arkeller/linux/kernel_user_space_howto.html#s8#include #include #include #include #include #incl
利用mmap /dev/mem 读写Linux内存---root 权限 利用mmap /dev/mem 读写Linux内存分类: linux linux kernel2011-08-02 14:00 114人阅读 评论(1)收藏 举报使用 hexedit /dev/mem 可以显示所有物理内存中的信息。 运用mma
linux内核中读写文件 #include #include #include #include #include #include #include #include #include #define MY_FILE "/root/LogFile"char
Linux内核中读写文件数据的方法 Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大多是在需要调试的驱动程序--中读写文件数据。在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() filp_close(), vf
linux驱动current,引用当前进程,及task_struct 尽管内核模块不象应用程序一样顺序执行, 内核做的大部分动作是代表一个特定进程的. 内核代码可以引用当前进程, 通过存取全局项 current, 它在 中定义, 它产生一个指针指向结构 task_struct, 在 定义. current 指针指向当前在运行的进程. 在一个系统
控制寄存器 cr0,cr2,cr3 《Linux内核完全剖析—基于0.12内核》第4章80x86保护模式及其编程控制寄存器(CR0~CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性,如图4-3所示。CR0中含有控制处理器操作模式和状态的系统控制标志;CR1保留不用;CR2含有导致页错误的
GCC的内嵌汇编语法 AT&T汇编语言语法 __asm__ __volatile__ GCC的内嵌汇编语法 AT&T汇编语言语法(一)2007年05月09日 12:36开 发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有
hook syscall table and clear cr0 一个简单的linux rootkit2011-01-17 14:58http://hi.baidu.com/shazi129/blog/item/53974aec2f0fc5c32e2e21f1.html下面提供一个相对完整的rootkit,在Fedora 1
get system call table in x86-64 Linux http://bbs.chinaunix.net/thread-2143235-1-1.htmlLinux System Call Tablehttp://bluemaster.iu.hio.no/edu/dark/lin-asm/syscalls.html
LVM分区挂载。 如果安装系统时候用到了LVG(逻辑卷管理),那么LVM分区不能够通过普通挂载方式来挂载。普通的挂载方式下我们可以指定分区格式,然后挂载:#mount -t ext3 /dev/hdb1 /mnt/hdb1对LVM分区进行挂载,前提要能够被探测到,然后激活,再挂载。
linux 2.6.22-14 动态添加syscall - [Linux] linux 2.6.22-14 动态添加syscall - [Linux]版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://technica.blogbus.com/logs/18945123.htmlLinux Syste
C++ explicit关键字应用方法详解 explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项: * explicit 关键字只能用于类内部的构造函数声明上
判断PE文件的数字签名信息 判断PE文件的数字签名信息工作中碰到需要判断一个PE文件是否是所确认的文件,而不是被替换过的。直接判断文件名的话有些不保险,别人只要修改下文件名,就可以以假乱真。因而需要判断额外的信息;由于文件有数字签名,判断数字签名因而是一个比较好的方法,但是如果只是判
strace gdb与ptrace strace gdb与ptrace2011-05-24 10:20 121人阅读 评论(0) 收藏 举报学习, 转贴自:http://blog.csdn.net/Javadino/archive/2008/09/06/2891413.aspxhttp:
字符集和字符编码[订正] 字符集和字符编码[订正]这个主题已经被N多人讨论过了,这里仅仅是个人总结,不是教程。字符集和字符编码潘孙友 2010-12-31 于遵义目录一、字符集二、字符编码三、Windows平台 3.1 Codepage代码页 3.2 编码转换
结合file和iconv命令转换文件的字符编码类型 http://hi.baidu.com/netwrom/blog/item/8885f31ef0d09ae7e1fe0b1c.html在很多类unix平台上都有一个iconv工具,可以用来转换字符编码;而对于普通的文本文件,file命令可以用来检测
让程序崩溃时产生coredump Core Dump[ 2010-01-06 13:38:30 | 作者: yuhen ]在 Windows 下我们已经习惯了用 Windbg 之类的工具调试 dump 文件,从而分析并排除程序运行时错误。在 Linux 下我们同样可以完成类似的工作 —— Core Dump。我们
seq_file实例实现ps:my_ps richardhesidu 发表于 2005-11-27 11:11贴一个我写的吧. 纯粹是为了讨论, 免得有人说我侵犯知识产权.#include #include #include //proc_fs#include //seq_file#inc
linux C程序中获取shell脚本输出 linux C程序中获取shell脚本输出 (2010-12-23 10:43)标签: linux style 控制台 名言 分类: shell1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大
学会使用svn:externals 最近在与人合作的项目中使用了Zend Framework。为保证项目稳定性和方便发布,合作者把框架导出(export)到他的版本库然后提交(check in)。因为ZF框架的文件大量频繁的更新,他放弃了从框架版本库导出(export)的本地版本库同步到版本控制
KBuild MakeFile介绍 从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这同过去的编译系统有很大的不同, 尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的 Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。Linux内核M
关于感染型病毒的那些事(三) 前段时间,我在网上下载了一个3D游戏,想要玩的时候却被提示需要将IE的主页设置为特定的网址才能玩这个游戏.对于我这种有"系统洁癖"的人来说,最反感的就是这种要求,用Peid查了下,发现没有加壳,一路跟下来,发现这个程序也提供了一种病毒感染的思路,那就是资源感染,既将宿主程序作为病毒程序的一个资源保存,将附加了宿主程序资源的病毒程序覆盖原宿主程序,在打开病毒程序时,病毒发作同时将宿主程序释放出来
关于感染型病毒的那些事(二) 从(一)中建立了初步的注入代码后,需要把用来占位的11223344H改为相应的地址,用一个函数来完成. view plaincopy to clipboardprint?//OEP是从PE头中得到的程序入口点,VEP是病毒注入的起始位置,ImageBase是文件基址 int BuildInjectCode(DWORD OEP, DWORD VEP, DWOR
关于感染型病毒的那些事 http://blog.csdn.net/GaA_Ra/archive/2010/06/27/5697579.aspx在我看来,感染型病毒才是真正称得上为病毒,因为感染型病毒的手动清除比较困难,大学的时候,帮同学杀毒最烦躁的就是碰上感染型的病毒,除非写一个程序自动处理,不然手动清除是相当麻烦的.当然我所谓的真正病毒主要是在我看来,能够轻易用手工清除的病毒都不是好的病毒.现在病毒制造者追求的
Thunk 技术的一个改进 转自:http://www.vckbase.com/document/viewdoc/?id=1817摘要:介绍了 thunk 技术中如何避免直接写机器码。关键字:Thunk 机器码 this指针 Thunk技术,一般认为是在程序中直接构造出可执行代码的技术(在正常情况下,这是编译器的任务)。《深度探索C++对象模型》中对这个词的来源有过考证(在中文版的162页),说thunk是knuth的倒拼字。knuth就是大名鼎鼎的计算机经典名著《The Art of Computer Programming》的
封包和拆包 封包和拆包 收藏作者:fengge8ylf 博客:http://blog.csdn.net/fengge8ylf对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了.一.为什么基于TCP的通讯程序需要进行封包和拆包.TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想
explicit关键字与拷贝构造及赋值 今天看到公司的代码内有大量的explicit关键字,但是老版的MSDN内例子并不完善,实在是不明白,最终从网上一篇文章内找到了答案:原来explicit是为了防止隐式使用拷贝构造函数的.以下附上从新版MSDN中找到的例子和网上那篇文章:// Copy From MSDNThis keyword is a declaration specifier that can only be applied to in-class constructor declarat
CountDownLatch同步辅助类 从名字可以看出,CountDownLatch是一个倒数计数的锁,当倒数到0时触发事件,也就是开锁,其他人就可以进入了。在一些应用场合中,需要等待某个条件达到要求后才能做后面的事情;同时当线程都完成后也会触发事件,以便进行后面的操作。CountDownLatch最重要的方法是countDown()和await(),前者主要是倒数一次,后者是等待倒数到0,如果没有到达0,就只有阻塞等待了。 下面的例子简单的说明了Co
进程线程及堆栈关系的总结 进程线程及堆栈关系的总结突然想到进程的栈和线程的栈,就顺便说一下,线程的栈被自动分配到进程的内存空间中进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
select、poll、epoll 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://xufish.blogbus.com/logs/72686176.html selectselect最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。select目前几乎在所有的平台上支
linux中使用pthread_kill函数测试线程是否存活 pthread_kill:别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。int pthread_kill(pthread_t thread, int sig);向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默认的行为影响整个进程,也就是说,如果你给一个线程发送了SIGQU
linux获取线程Id的三种方法 我使用了第二种方法,很方便: #define gettid() syscall(__NR_gettid) 用到的地方 gettid() 在linux2.4版本后,linux使用了NPTL作为自己的线程库,为了兼容POSIX标准,所以在内核task中有两个域tgid和tid,前者是进程id,后者是线程id。在linux上获得线程id的方法,目前我所知的有三种,当然这里的三种是指在用户态的程序中,否则除非自己写的kernel module, 都是调用编号224的系统调用实现的(2.6版本)。 第一种
sed结构分析 + awk结构分析 sed结构分析sed/awk教程众多,大多是实例教材,以举例为主;或者是语法教材,以语法讲解为主。学习了sed,又学习awk,结果学着学着,很容易迷糊,语法容易混淆。本文主要讲解sed的结构,使大家学习完以后对sed有一个整体性的把握。至于什么叫做结构,看完应该可以明白。本人sed/awk所学有限,错误之处请大家不吝指出。1: sed 语法sed -e 'pattern + action' textf
Linux设备驱动程序学习 前言: 接触ARM-Linux已经有9个多月了,经历了毕业设计和公司的练习设计,对ARM-Linux有了一定的了解,也让我爱上了ARM-Linux,决心以后从事Linux的工作。 8月份开始,我算是从头认认真真,一步一个脚印地学习ARM-Linux。先后对博创UP-NETARM2410-S和友善之臂SBC2440V4进行了系统移植,包括U-Boot1.2.0、Linux2.6.22.2,并针对3个网卡芯片进行了U-Boot和Linux的驱动移植,制作了一个cramfs和nfs文件系统。可以说
关于#/##在宏定义中的用法 关于#/##在宏定义中的用法 (2011-04-01 11:58)http://blog.chinaunix.net/space.php?uid=20792262&do=blog&id=201691分类: 算法与数据结构 第1篇在C/C++的宏定义中,#/##存在特殊的作用1. #运算符将一个宏的参数转换为字符串字面量。它仅允许出现在带参数的宏的替换列表中。view plaincopy to clipboardprint?#include <cstdio> #def
CurrentControlSet和ControlSet001 原文:http://hi.baidu.com/pwcrab/blog/item/8fce6003ef4396e808fa9394.html我们的程序运行时需要设置一些环境变量,但是在某客户那里,用户环境中可扩展值 %SystemRoot% 没有被展开。 调查发现原因如下:注册表中有两种类型的键:REG_SZREG_EXPAND_SZ如果上面一种键的值中存在可扩展占位符%xxx%的话是不会被解释的但是如
vc 将文件存入mysql数据库 vc 将文件存入mysql数据库2008-07-15 11:31近日公司安排了一个任务,就是做一个在Windows下往linux下的mysql插入文件的工具,如果只是单纯的插入,网上应该有工具可以下载的,但是我没有去找了,自己实现了一个,将开发过程里用到的一些东西记录下来,以后再遇到的话,可以来这里查一查。与mysql通讯,我选择直接使用mysql的C API,可以非常方便快捷地对Mysql进行操作,还可以轻松地实现跨平台,如果使用ODBC,那么在*nix下时
SQLITE3 使用总结 SQLITE3 使用总结 董淳光 42530 (老工号)dcg1981@163.com 2007年6月11日星期一前序:... 1一、 版本... 1二、 基本编译... 2三、 SQLITE操作入门... 2<br /