小李子

小小的蜗牛,慢慢的爬。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年3月19日

摘要: 1. 窗口过程 每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle),消息ID(Message ID),和两个消息参数(wParam, lParam), 当窗口收到消息时系统就会调用此窗口过程来处理消息。(所以叫回调函数)2 消息类型1) 系统定义消息(System-Defined Messages)在SDK中事先定义好的消息,非用户定义的,其范围在[0x0000, 0x03ff]之间, 可以分为以下三类:1> 窗口消息(Windows Message)与窗口的内部运作有关,如创建窗口,绘制窗口,销毁窗口等。可以是一般的 阅读全文

posted @ 2012-03-19 16:51 ljl_falcon 阅读(376) 评论(1) 推荐(0)

摘要: windows似乎只提供了一种启动进程的方法:即必须从一个可执行文件中加载并启动。 而下面这段代码就是提供一种可以直接从内存中启动一个exe的变通办法。 用途嘛, 也许可以用来保护你的exe,你可以对要保护的 exe 进行任意切分、加密、存储, 只要运行时能将exe的内容正确拼接到一块内存中,就可以直接从内存中启动,而不必不安全地去 生成一个临时文件再从临时文件启动进程。另外这段代码也提供了一种自己写exe外壳的简单途径, 如果能配合其它各种外壳技术就更好地保护你的exe文件。 原理很简单:就是“借尸还魂”,启动一个僵尸进程(NT下可以是自身程序启动的另一个进程), 然后在它运行前将其整个替换 阅读全文

posted @ 2012-03-19 13:30 ljl_falcon 阅读(377) 评论(0) 推荐(0)

摘要: 用百分比比较两个字符串(彼此之间有多少相似度)返回 byte类型,从0到 100%functionCompareStringsInPercent(Str1,Str2:string):Byte;typeTLink=array[0..1]ofByte;vartmpPattern:TLink;PatternA,PatternB:arrayofTLink;IndexA,IndexB,LengthStr:Integer;beginResult:=100;//BuildingpatterntablesLengthStr:=Max(Length(Str1),Length(Str2));forIndexA:= 阅读全文

posted @ 2012-03-19 13:29 ljl_falcon 阅读(963) 评论(0) 推荐(0)

摘要: usesWindows,SysUtils,Classes;const//Crc32表Table:Array[0..255]ofDWORD=($00000000,$77073096,$EE0E612C,$990951BA,$076DC419,$706AF48F,$E963A535,$9E6495A3,$0EDB8832,$79DCB8A4,$E0D5E91E,$97D2D988,$09B64C2B,$7EB17CBD,$E7B82D07,$90BF1D91,$1DB71064,$6AB020F2,$F3B97148,$84BE41DE,$1ADAD47D,$6DDDE4EB,$F4D4B551, 阅读全文

posted @ 2012-03-19 13:26 ljl_falcon 阅读(399) 评论(0) 推荐(0)

摘要: 用硬件id加密程序,其中一项加密是用mac地址。mac如果是真实网卡信息是唯一的,不好的消息是网卡很容易就能虚拟,所以需要配合其它手段。现在有三种方式,各有利弊第一种 最简单也最实用,通过调用ipconfig -all 来取得网卡。第二种 通过netbios,因为是网络协议,如果网卡没有连接上,取不到mac地址第三种 通过rpc调用,只能得到一块网卡.在有多块网卡时会出现有时取到的MAC不一致.第一种function MacAddress(): string;implementationfunction GetIpMacAddress(): TStringList;var files,re:T 阅读全文

posted @ 2012-03-19 13:14 ljl_falcon 阅读(765) 评论(0) 推荐(0)