摘要:今天在看雪论坛注册了一个账号,需要100kx才能转为正式会员,故想编写一个可以在线刷kx的工具。思路就是第一次运行程序的时候显示bbs主页,然后手动登陆论坛(其实可以用Au3实现自动登陆),然后每个指定时间(我设置为6分钟)再次访问论坛就可以了。主要练习delphi控制台程序,一是如何调用外部程序,二是如何结束指定程序。关于调用外部程序,无非就是ShellExecute或WinExec,我选的后者...
阅读全文
摘要:思路:其实比较简单,还是利用DLL,首写跟据API函数OpenProcess与TerminateProcess的结构自已编写两个与这两个API一样的函数,再利用GetProcAddress获取系统的那两个API函数入口地址,最后用WriteProcessMemory将你写的函数的地址替换掉原来系统的函数地址。这样所有调用这两系统API都将先执行你的函数。如果只Hook其中一个函数比如只hook O...
阅读全文
摘要:Dialogs单元中有个InputQuery函数,能显示一个输入框,获取用户输入文本,返回一个布尔值。 function InputQueryEx(const ACaption, APrompt: string; var Value: string):Boolean; 今天看《Delphi5程序员指南》第4章P107中有个实例程序:在DPR文件中增加代码,其中用到了InputQue...
阅读全文
摘要:非模式窗体从创建到销毁都需要代码来维护,防止内存未安全释放。模式窗体就比较省心一些,只需要在代码段的try…finally中创建并维护即可。下面用例子来说明一下两类窗体如何调用:主窗体程序:非模式窗体:
阅读全文
摘要:作 者: Anskya时 间: 2008-04-26,16:24:39链 接: http://bbs.pediy.com/showthread.php?t=63791以下代码均已Delphi描述...至于为什么...首先我是一个Delphi Coder...虽然我大部分时间使用的是ASM编译器和C编译器但是我喜欢Delphi...好了不废话了...已知的三种方法:如果各位有更好的意见欢迎大家提出[...
阅读全文
摘要:一直用巨盾自带的保密卡程序,每次都要启动巨盾,然后输密码查保密卡。感觉不是很好,一是巨盾占内存资源大,二是程序界面不很友好,不太喜欢。故根据自己的喜好和设想,设计编写一个保密卡程序。实现的功能:一、输入正确的密码后显示保密卡界面,防止别人偷偷使用。二、卡上坐标显示,有形象的十字指示标志。三、点下相应坐标后显示密码,点击其他坐标后原坐标位置隐藏。四、支持多个卡操作。五、显示卡时防截屏。六、程序加密。...
阅读全文
摘要:一、引子: 现在的Windows应用程序几乎都使用图标、图片、光标、声音等,我们称它们为资源(Resource)。最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用。资源是程序的一部分,程序要正常运行就离不了资源文件。但是它是不可执行代码。为了更好地管理资源,Delphi中提供了一种.RES类型的资源文件。它可以把我们程序中所需要的资源整合到一个资源文件(.RES)下来...
阅读全文
摘要:先建两个procedure,一个把label的颜色改为红色,一个把label的颜色变为灰色. 动态创建label的时候调用就可以了。 lb.OnMouseEnter:=mset; lb.OnMouseLeave:=mslv; 下面是完整代码: procedure TForm1.mset(Sender:TObject); begin TLabel(Sender).Color:=clRed;...
阅读全文
摘要:string是自动管理内存大小和分配,而Pchar需要手动分配内存手动释放,显然string要比pchar的使用要方便一些,但是win api的许多参数需要pchar类型,所以应该学会pchar的使用技术。 下面的例子演示了使用PChar和string类型时的内存分配技术:
阅读全文
摘要:《Delphi5程序员指南》中讲到dll显示模式窗口与非模式窗口,用的是动态调用的方法,感觉有些繁琐,自己测试了一下,其实完全可以用静态调用的方法,也不用维护Application的Handle,这样不按书上的规范使用或许有什么问题,但以我目前的delphi水平暂时看不出。课本教程的调用方法如下:一.Dll库源码:非常简洁,只有一个输出接口函数:showCalendar其封装的窗体代码在DllWi...
阅读全文
摘要:当用delphi开发的dll中有参数或返回值是字符串时,需要调用sharemem单元,且需要borlnmm.dll一起发布程序。用Pchar代替string是一个解决方案,只不过对pchar的使用要复杂一些:
阅读全文
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type //显示调用,主要用到以下三个命令: //LoadLibrary:获取 DLL //GetProcAddress:获取函数...
阅读全文
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1...
阅读全文
摘要:1、静态调用与动态调用的使用时机:如果dll中的函数只被调用1次,那么用动态调用可以及时释放内存,节省宝贵内存空间。如果dll中函数被频繁调用,那显然还是静态调用更合理一些。2、dll调用模式窗口和非模式窗口看的不是很明白。但是二者的区别和注意事项还是很明确的:模式窗口的显示用showmodal(),非模式窗口则需要通过两个函数来维护,一个维护显示show,一个维护关闭。由于对例子有些疑问,故这块...
阅读全文
摘要:其实人物的基址还是很好找到的,按照以前找血量的方法很轻松找到。包括身上的金钱,仓库的金钱,疲劳什么的。但是,对于坐标的搜索就没这么轻松了。 第一,以前没有搜索坐标的经验,只是知道基址+偏移就ok,也知道坐标是南北Y东西X,是浮点数,然后根据以前找到的坐标地址,来了个范围寻找。然后不停的增加、减少……最后仍然有100多个,范围还是挺大,不好找。 第二,搜坐标经验不足,判断出现个重大失误。我本以为站在...
阅读全文
摘要:我们常用的函数有两个,WinExec 和 ShellExecute。 1) 使用 WinExec 函数 (属于 WinProcs单元) · 声明形式 UNIT WinExec(LPCSTR lpCmdLine, UINT uCmdShow); [例] 注意:如果 SDir 不是有效路径不会提示错误。 [例] winexec('command.com /c copy *.* c:\',SW_Nor...
阅读全文
摘要:如果你更改过IE的缓存(临时文件)目录的默认路径,就会出现此问题,解决方法: 1. 打开注册表:开始 — 运行 — 输入“regedit”回车 2. 在注册表中找到该项: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Shell Folders 双击里面的cache目录,改...
阅读全文
摘要:今天从图书馆借到《Delphi2005从入门到精通》,准备长期携带和查阅。利用晚上时间看了一下该书对Dll的讲解,有些内容比较深,不太明白,有些地方还是看的懂的。比如Dll内存共享和包,可能是缺少例子吧,真正写一段代码用到这个技术可能就好点。 Dll很早就有接触,也有过疑问,想知道他的作用是什么。但是对dll的认识只是停留在知道他是叫做动态链接库的东西,如何创建和使用的概念就比较模糊了。今天看了三...
阅读全文
摘要:《Delphi6开发人员指南》中讲到dll开发的一种模式,感觉很受益,特自己写了个dll加以练习。实现功能的dll源码:实现dll接口的源码:dll发布后同时提供dll接口的源码,便于别人的调用,也方便自己修改。
阅读全文
摘要:当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址空间中,加载器分析可执行模块的输入表,并设法找出任何需要的DLL,并将它们映射到进程的地址空间中。由于输入表中只包含DLL名而没有它的路径名,因此加载程序必须在磁盘上搜索DLL文件。首先会尝试从当前程序所在的目录加载DLL,如果没找到,则在Windows系统目录查找,最后是在环境变量中列出的各个目录下查找。利用这个特点,先伪造...
阅读全文
摘要://通过 DLL Wizard 建立:library TestDLL;uses SysUtils, Classes, Dialogs;{$R *.res}//建立过程procedure Test;begin ShowMessage('TestDLL.Test');end;//输出exports Test;beginend.//在其他工程调用,如果不在一个工程组,需要在相同目录下、Syst...
阅读全文
摘要:uses TLhelp32function GetProcessNameById(const AID: Integer): String;var h:thandle; f:boolean; lppe:tprocessentry32;begin Result := ''; h := CreateToolhelp32Snapshot(TH32cs_SnapProcess, 0); lppe.dwSiz...
阅读全文
摘要:1、《Delphi高手突破》挺不错的入门级书籍,3天时间大致读完,对面向对象编程的理念有了全新的体会。 2、《Delphi组件参考大全》 边学边用,实践出真知!3、《Delphi函数参考大全》4、《Delphi6开发人员指南》国外经典,正在学习,虽然现在都delphi XE了,但语言不会有太大的变化。5、《Delphi6从入门到精通》国外经典6、《参透Delphi/Kylix》国内经典,对比国外的...
阅读全文
摘要:DLL劫持利用系统未知DLL的搜索路径方式,使得程序加载当前目录下的系统同名DLL。所以可以告诉系统DLL的位置,改变加载系统DLL的顺序不是当前目录,而是直接到系统目录下查找。 这个想法可以通过修改注册表实现。 在注册表键值:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs 是调用系统...
阅读全文
摘要:DLL劫持原理 DLL劫持技术当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址空间中,加载器分析可执行模块的输入表,并设法找出任何需要的DLL,并将它们映射到进程的地址空间中。 由于输入表中只包含DLL名而没有它的路径名,因此加载程序必须在磁盘上搜索DLL文件。首先会尝试从当前程序所在的目录加载DLL,如果没找到,则在Windows系统目录中查找,最后是在环境变量中列出...
阅读全文
摘要:看的是《参透Delphi_Kylix》,对DLL的认识有了一定的提高,但感觉还没有完全吃透。明天对比一下其他的书籍,然后学习一下万一老师的blog,看看DLL到底如何实际应用。有几个问题:1、如何创建一个DLL文件并调用他。(已解决)2、如何在一个DLL中调用其他DLL中的程序?(邪恶的想法,和目前正在研究的DLL劫持注入有关)(已解决)3、如何检测是谁(哪个进程)调用了指定的dll?关于问题1,...
阅读全文
摘要:来北京进修3个月,自由支配时间挺多,故计划在这3个月内掌握delphi这门语言。早就想深入学习一下delphi了,但往往因为各种各样的原因没能坚持下来,非常可惜。这次,要有所改变和突破,故开此blog,记录每天学习的点点滴滴和心得体会,希望3个月后能基本掌握delphi。 很早就接触并学过不少编程语言,初中的时候接触了BASIC语言,高中的时候是文曲星上的QBASIC,大学一的时候学过C,大三实...
阅读全文
摘要:首先说明,这个教程以一个找CALL的练习程序为例子。之所以不拿游戏,因为游戏找CALL时间长了,不适合做教程,而且本练习涵盖参数。我将说明为什么这么调用,为什么这么写!好的。偶们好的,偶们这节课需要用到的程序为【wygailf】制作的一个找CALL测试程序。首先感谢他!这个就是我们用到的程序,OK,打开他并且用OD附加进程!并使其进入“运行”状态好的,下面我没开始找CALL...
阅读全文