存档

2011年4月 的存档

Win7下文件拖拽问题

2011年4月30日 2 条评论

如果一个程序你给他添加了拖拽功能的实现,那么拿到Win7下就不那么完美了。
如果你以管理员身份运行这个程序,那么文件拖拽功能就失效了。而以普通权限运行程序就没有问题。对于那些急需要管理员权限,又要有拖拽功能才方便的程序可谓很无语。
其实个人对Win7不是很喜欢,界面还是不习惯,所以一直在坚持用XP。才发现Win7有这样的不足之处。最重要的是,Win7自带的程序都是这样,比如记事本。不得不说这是UAC设计上的一个失误!!!(据说Vista也有这个问题,那只能怪UAC了)
Win7管理员权限下拖拽文件失效

觉得文章还不错?点击此[……]

继续阅读

分类: Windows开发 标签: , ,

绕过sql注入过滤的一些方法

2011年4月29日 5 条评论

对于Web安全一直以来都没有什么了解。本文也是讲的比较菜的技术。sql注入在很早很早以前是很常见的一个漏洞。后来随着安全水平的提高,sql注入已经很少能够看到了。但是就在今天,还有很多网站带着sql注入漏洞在运行。稍微有点安全意识的朋友就应该懂得要做一下sql注入过滤。下面是一些绕过sql注入过滤的一些方法(没有深入研究之意,所以只是集中简单的绕过sql注入过滤方法)
1. 绕过空格过滤
使用注释/**/来替换,类似C语言一样,C语言在编译之前注释会被用个空格替换。

select/**/pwd[……]

继续阅读

分类: WebSecurity 标签: , ,

最后一场ACM比赛

2011年4月23日 10 条评论

今天是今年学校校赛,也是我的最后一场ACM比赛了,从此不会再参加这个比赛了。晚上学长请客,校队老队员一起吃了饭,自己是有点点伤感的。
从大一下学期上ACM全校性选修课开始接触ACM,知道去年年底比完赛,之后就基本没做题了。还是想把时间花在自己喜欢的东西上来。今天在机房的时候,老师笑着说“你怎么就不搞了呢?”,是啊,我去年还说要继续搞的。最后,老师商量事情的时候直接说“把我抛弃了”O(∩_∩)O~
当然了,校赛有WX大神支撑,一等奖不是问题。结果就是一等奖。
好像每年校赛之后,都会有退役的老队员请[……]

继续阅读

分类: ACM-ICPC 标签: , , , ,

调试与反调试(3)–CheckRemoteDebuggerPresent

2011年4月22日 6 条评论

CheckRemoteDebuggerPresent这个API可以检测是否有调试器的存在,而且这个和PEB里面的BeingDebugged无关了。看一下CheckRemoteDebuggerPresent的声明:

BOOL WINAPI CheckRemoteDebuggerPresent(
__in HANDLE hProcess,
__in_out PBOOL pbDebuggerPresent
);

第一个参数是进程句柄,第二参数用于[……]

继续阅读

调试与反调试(二)——BeingDebugged

2011年4月21日 2 条评论

如果进程处于被调试状态,那么PEB里面的BeingDebugged标志会置位,《调试与反调试(一)——IsDebuggerPresent》中的IsDebuggerPresent就是这么实现的~不信?可以看网上流传的Windows 2000源代码,在“\win2k\private\windows\base\client\debug.c”里面可以看到,就是这么实现的:

BOOL
APIENTRY
IsDebuggerPresent(
VOID
)
 
/*[……]

继续阅读

调试与反调试(一)——IsDebuggerPresent

2011年4月21日 没有评论

IsDebuggerPresent是一个声明与kernel32.dll中的函数,通过它可以检测当前进程是否正在被调试。当然,这是一个很古老的API了,我相信不会有人用这个来检测程序在被调试,因为这个很容易绕过。对于专业的调试器而言,IsDebuggerPresent根本就没有用武之地。下面看一个例子:

// 作者:代码疯子
// 博客:http://www.programlife.net/
// 转载请注明:本文来自程序人生——Www.ProgramLife.Net
#include <[……]

继续阅读

用OllyDbg对Win32汇编进行源码级调试

2011年4月19日 2 条评论

如果是刚开始学习汇编,肯定对调试有很大的困难,我以前都是用OD来反汇编,对于Win32Asm的话,感觉还是过得去的,效果也还好。今天在网上看到有源码级调试方法,所以就搬过来了,试了一下,效果不错。
首先是编译的时候要生产符号表,类似用WinDbg进行驱动程序源码级调试一样。所以,makefile需要这样写(这只是一个例子):

NAME = NoImport
EXE = $(NAME).exe
OBJ = $(NAME).obj
 
ML_FLAG = [……]

继续阅读

PE文件格式解析(五)——导出表的解析

2011年4月19日 没有评论

昨天看了一下PE感染的实现,发现还是存在很多疑问,所以决定继续写那个PE工具。这里要实现导出表的解析。
输出表一般存在于Dll之中,在Winnt.h中的定义如下:

typedef struct _IMAGE_EXPORT_DIRECTORY {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD N[……]

继续阅读

分类: PE文件格式 标签: , , ,

PE文件格式解析(四)——进程及模块显示

2011年4月17日 2 条评论

本文放在这个系列感觉有点不合适,不过在一般的PE编辑器都有这个功能,但是我写的只是简单的枚举模块,没有其他扩展功能。
到此,PE文件解析工具也基本完工了,要考试了,不打算继续拓展了。这些文章汇总地址如下:
第一篇——《神奇的栈溢出
第二篇——《PE文件格式解析(二)
第三篇——《PE文件格式解析(三)——导入表的解析
第四篇——《PE文件格式解析(四)——进程及模块显示
这里显示进程列表以及模块列表用到的API是CreateToolhelp32Snapshot、Process32Firs[……]

继续阅读

SysListView32控件响应鼠标单击消息

2011年4月16日 2 条评论

SysListView32控件就是列表视图控件(MFC里面的CListCtrl就是对SysListView32进行的封装)。如果想知道用户选择了哪个元素,可以这么响应消息(注意,这里是Report风格):

// Coded by 代码疯子
// http://www.programlife.net/
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code)
{
case N[……]

继续阅读