问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求delphi 入门教程 或者 视频

发布网友 发布时间:2022-09-19 00:55

我来回答

3个回答

热心网友 时间:2023-10-24 05:03

帮你找了几个,看看吧,下载的时候要是不能直接下,就用迅雷等下载

洪恩编程之道 delphi7-视频教程
http://znccw.com/Article/pc/biancheng/200703/2267.html
Delphi 2005 视频教程 设计师版
http://znccw.com/Article/pc/biancheng/200703/2266.html
Delphi经典编程入门 电子书
http://znccw.com/Article/pc/biancheng/200703/2240.html
《Delphi7从入门到精通》中文版 电子书
http://znccw.com/Article/pc/biancheng/200703/2239.html
delphi7.0视频教程 视频教程
http://znccw.com/Article/pc/biancheng/200703/2237.html
Delphi编程入门篇视频教程 编程之道
http://znccw.com/Article/pc/shujuku/200703/2233.html
DELPHI程序设计视频教程 中山大学
http://znccw.com/Article/pc/biancheng/200703/2235.html

热心网友 时间:2023-10-24 05:04

视频:
http://lib.verycd.com/2005/03/18/0000042712.html
http://you.video.sina.com.cn/b/2375958-1290122364.html
教程:
http://download.chinaitlab.com/special/delphiebook.htm

热心网友 时间:2023-10-24 05:04

Windows下Hook API技术

什么叫Hook API?所谓Hook就是钩子的意思,而API是指Windows开放给程序员的编程接口,使得在用户级别下可以对操作系统进行控制,也就是一般的应用程序都需要调用API来完成某些功能,Hook API的意思就是在这些应用程序调用真正的系统API前可以先被截获,从而进行一些处理再调用真正的API来完成功能。在讲Hook API之前先来看一下如何Hook消息,例如Hook全局键盘消息,从而可以知道用户按了哪些键,这种Hook消息的功能可以由以下函数来完成,该函数将一个新的Hook加入到原来的Hook链中,当某一消息到达后会依次经过它的Hook链再交给应用程序。 HHOOK SetWindowsHookEx(
int idHook, //Hook类型,例如WH_KEYBOARD,WH_MOUSE
HOOKPROC lpfn, //Hook处理过程函数的地址
HINSTANCE hMod, //包含Hook处理过程函数的dll句柄(若在本进程可以为NULL)
DWORD dwThreadId, //要Hook的线程ID,若为0,表示全局Hook所有
); 这里需要提一下的就是如果是Hook全局的而不是某个特定的进程则需要将Hook过程编写为一个DLL,以便让任何程序都可以加载它来获取Hook过程函数。 而对于Hook API微软并没有提供直接的接口函数,也许它并不想让我们这样做,不过有2种方法可以完成该功能。第一种,修改可执行文件的IAT表(即输入表),因为在该表中记录了所有调用API的函数地址,则只需将这些地址改为自己函数的地址即可,但是这样有一个局限,因为有的程序会加壳,这样会隐藏真实的IAT表,从而使该方法失效。第二种方法是直接跳转,改变API函数的头几个字节,使程序跳转到自己的函数,然后恢复API开头的几个字节,在调用AP完成功能后再改回来又能继续Hook了,但是这种方法也有一个问题就是同步的问题,当然这是可以克服的,并且该方法不受程序加壳的*。 下面将以一个Hook指定程序send函数的例子来详细描述如何Hook API,以达到监视程序发送的每个封包的目的。采用的是第二种方法,编写为一个dll。首先是一些全局声明, //本dll的handle
HANDLE g_hInstance = NULL;
//修改API入口为 mov eax, 00400000;jmp eax是程序能跳转到自己的函数
BYTE g_btNewBytes[8] = { 0xB8, 0x0, 0x0, 0x40, 0x0, 0xFF, 0xE0, 0x0 };
//保存原API入口的8个字节
DWORD g_dwOldBytes[2][2] = { 0x0, 0x0, 0x0, 0x0 };
//钩子句柄
HHOOK g_hOldHook = NULL;
//API中send函数的地址
DWORD g_pSend = 0;
//事务,解决同步问题
HANDLE g_hSendEvent = NULL;//自己的send函数地址,参数必须与API的send函数地址相同int _stdcall hook_send( SOCKET s, const char *buf, int len, int flags );//要Hook的进程和主线程ID号DWORD g_dwProcessID = 0;
DWORD g_dwThreadID = 0; 从声明可以看出,我们会把API函数的首8个字节改为 mov eax, 00400000;jmp eax ,使程序能够跳转,只需获取我们自己的函数地址填充掉00400000即可实现跳转。而g_dwOldBytes是用来保存API开头原始的8个字节,在真正执行API函数是需要写回。还有一点,在声明新的函数时,该例中为hook_send,除了保正参数与API的一致外,还需要声明为__stdcall类型,表示函数在退出前自己来清理堆栈,因为这里是直接跳转到新函数处,所以必须自己清理堆栈。下面看主函数, BOOL APIENTRY DllMain( HANDLE hMole,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if(ul_reason_for_call == DLL_PROCESS_ATTACH)
{ //获取本dll句柄
g_hInstance = hMole; //创建事务
g_hSendEvent = CreateEvent( NULL, FALSE, TRUE, NULL );

//重写API开头的8字节
HMODULE hWsock = LoadLibrary( "wsock32.dll" );
g_pSend = ( DWORD )GetProcAddress( hWsock, "send" ); //保存原始字节 ReadProcessMemory( INVALID_HANDLE_VALUE, ( void * )g_pSend,
( void * )g_dwOldBytes[0], sizeof( DWORD )*2, NULL ); //将00400000改写为我们函数的地址
*( DWORD* )( g_btNewBytes + 1 ) = ( DWORD )hook_send;
WriteProcessMemory( INVALID_HANDLE_VALUE, ( void * )g_pSend,
( void * )g_btNewBytes, sizeof( DWORD )*2, NULL );
}
return TRUE;
} 以上是dll的main函数,在被指定的程序加载的时候会自动运行dll的main函数来完成初始化,这里就是改写API的首地址来完成跳转。当然本程序是对于指定程序进行Hook,如果要进行全局Hook,可以在main函数中用GetMoleFileName函数来获取exe文件完整路径,判断当前进程是否是想要Hook的进程。写函数中使用INVALID_HANDLE_VALUE,表示写本进程。 int _stdcall hook_send( SOCKET s, const char *buf, int len, int flags )
{
int nRet; WaitForSingleObject( g_hSendEvent, INFINITE ); //恢复API头8个字节
WriteProcessMemory( INVALID_HANDLE_VALUE, ( void* )g_pSend,
( void* )g_dwOldBytes[0], sizeof( DWORD )*2, NULL ); /* 这里可以添加想要进行的处理过程 */ //真正执行API函数
nRet = send( s, buf, len, flags ); //写入跳转语句,继续Hook
WriteProcessMemory( INVALID_HANDLE_VALUE, ( void* )g_pSend,
( void* )g_btNewBytes, sizeof( DWORD )*2, NULL ); SetEvent( g_hSendEvent ); return nRet;
} HOOK_API BOOL StartHook(HWND hWnd)
{ //通过传入的窗口句柄获取线程句柄
g_dwThreadID = GetWindowThreadProcessId( hWnd, &g_dwProcessID ); //WH_CALLWNDPROC类型的Hook
g_hOldHook = SetWindowsHookEx( WH_CALLWNDPROC, HookProc, ( HINSTANCE ) g_hInstance, g_dwThreadID );
if( g_hOldHook == NULL )
return FALSE;
return TRUE;
} static LRESULT WINAPI HookProc( int nCode, WPARAM wParam, LPARAM lParam )
{
return CallNextHookEx( g_hOldHook, nCode, wParam, lParam );
} HOOK_API void StopHook(void)
{
if(g_hOldHook != NULL)
{
WaitForSingleObject( g_hSendEvent, INFINITE );
HANDLE hProcess = NULL;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, g_dwProcessID);
DWORD dwOldProc;
DWORD dwNewProc; //改变页面属性为读写
VirtualProtectEx( hProcess, ( void* )g_pSend, 8, PAGE_READWRITE, &dwOldProc ); //恢复API的首8个字节
WriteProcessMemory( hProcess, ( void* )g_pSend,
( void* )g_dwOldBytes[0], sizeof( DWORD )*2, NULL ); //恢复页面文件的属性
VirtualProtectEx( hProcess, ( void* )g_pSend, 8, dwOldProc, &dwNewProc );

CloseHandle(g_hSendEvent);

UnhookWindowsHookEx( g_hOldHook );
}
} 可以看出,我们创建的Hook类型是WH_CALLWNDPROC类型,该类型的Hook在进程与系统一通信时就会被加载到进程空间,从而调用dll的main函数完成真正的Hook,而在SetWindowsHookEx函数中指定的HookProc函数将不作任何处理,只是调用CallNextHookEx将消息交给Hook链中下一个环节处理,因为这里SetWindowsHookEx的唯一作用就是让进程加载我们的dll。 以上就是一个最简单的Hook API的例子,该种技术可以完成许多功能。例如网游外挂制作过程中截取发送的与收到的封包即可使用该方法,或者也可以在Hook到API后加入木马功能,反向连接指定的主机或者监听某一端口,还有许多加壳也是用该原理来隐藏IAT表,填入自己的函数地址。
Delphi 2010 入门教程,越简单越好,新手

1、运行Delphi 默认会创建一个名为Project1的Application,并且有一个默认的主窗口Form1 2、从控件面板的Standard页中拖一个按钮控件到Form1上,会默认命名为Button1 3、双击Button1,写上 ShowMessage('hello,world!');4、点击Debug工具栏上的Run按钮,或按F9功能键运行 5、运行时 点击Button1按钮,...

aippt自动生成工具

随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图、条形...

各位大哥可以介绍一下有哪些适合DELPHI入门的电子教程吗?

学DELPHI的很少没听说过Marco Cantu的《Mastering Delphi》系列。早些时候的版本,他给出了免费的电子版,《Essential Pascal》〈Essential Delphi〉,都是挺好的入门基础书。http://www.marcocantu.com/

请教前辈们指点DELPHI的学习。

1、直接学Delphi没有问题,就像有的人直接学VC一样。但我个人建议先学一下Delphi的母语Object Pascal(Delphi不是语言,是编程工具),因为即使你会拖拉控件弄出一个界面,但你迟早有一天还会面临基本的语法问题。网上有些书是介绍Object Pascal的,如Object Pascal 参考手册、Pascal精要等等。2、我是个D...

Delphi7开发基础教程的第1章

Delphi 7入门1.1 Delphi的简要发展情况1.2 Delphi 7的功能特点及其发布版本1.3 Delphi 7企业版的安装1.3.1 系统需求1.3.2 企业版安装1.4 Delphi 7集成开发环境1.4.1 集成开发环境的功能概述1.4.2 集成开发环境的组成1.4.3 主菜单栏1.4.4 工 具 栏1.4.5 组件面板1.4.6 工程和...

谁有比较好的Delphi书籍(比较详细的那种)

2008-11-19 22:35 <DIR> Delphi6 电子商务应用开发 2008-11-19 22:35 <DIR> Delphi6 程序设计从入门至精通 2008-11-19 22:35 <DIR> Delphi6 程序设计教程 2008-11-19 22:35 <DIR> Delphi6 组件大全 2008-11-19 22:35 <DIR> Delphi6 编程基础 ...

Delphi 7完美经典简介

对于初学者而言,本书不仅提供了基础知识的入门教程,还通过实例演示,帮助他们快速上手。对于经验丰富的设计师,本书则深入剖析了Delphi的高级特性和设计原则,有助于他们在实践中提升技能和解决问题。不同于市面上大量聚焦于VCL组件应用的书籍,本书更注重程序设计的本质和Object Pascal语言的内在逻辑,这...

想学一门计算机高阶语言,先学哪个比较合适?---对于初学者来说...

你可以看看这个教程::e../eschool/zhuanti/photoshop/ 高手进,如何学计算机高阶语言 入门的话C语言比较合适的,有了C语言的基础之后再学C++,向软体工程方面发展VB只要随便看看就行了,JAVA的话应用上很强大的。谭浩强的《C程式设计》、《C++面向物件程式设计》比较容易入门,《C++ Primer》,《The C++ Programing Langu...

我是小白,想自学编程c语言,需要哪种入门书籍自学!

自学韩国语言入门书籍 要是自学的话 实际肯定不能难理解了 一定要简单一点 容易理解一点. 给你推荐 延世大学出版的韩国语教程 这本教材相对于其他教材还是比较容易的 里面的内容很容易理解和掌握. 我入门的时候就用的这本书 感觉挺好的. 推荐给你.请大家推荐一些C++的入门书籍。我想自学编程 现在...

想学习c语言,能达到初级的水平就可以,需要花多长时间?

现在应该学c++或java 不过如果你没有基础的话应该还是从c做起 回答者: 可以学一些初级的JAVA,我觉得delphi游戏编程导学并不难,既是有兴趣就去书店看看有没有JAVA初级入门的教材,用的软件是JDK1.3.1和JCPRO250 回答者: 先接触C或者VB VB是比较简单的面向对象编程 C是比较简单的面向过程的编程 学C是...

delphi哪个版本好用

此外,该版本还提供了丰富的文档和教程,帮助新手快速入门并提升开发技能。综上所述,Delphi 10.x 版本因其强大的功能、性能优化、良好的兼容性以及丰富的社区支持和资源而受到广泛好评。因此,对于想要使用 Delphi 进行开发的用户来说,Delphi 10.x 版本是一个不错的选择。

delphi入门基础教程 delphi7视频教程 delphi编程教程 delphi7基础教程pdf delphi教程pdf delphi制作视频程序 delphi入门 如何入门delphi7 delphi7基础教程
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求这张图片的画师和p站ID 贱人是碰不完的,有些人说遇到贱人打死他,可没有几个能那样的人吧 魅族16相机启动异常 除青春痘小妙招 青春痘怎么治好 ...就长了青春痘,可能是因为我经常吃油炸的,比如薯条、鸡翅等热气的东西... 游戏私服是什么意思 湖北省武昌儿童医院怎么走 王者荣耀版本更新后信誉积分会恢复吗 如果一个游戏出了私服,那以前的官服 会面临停服问题吗? 私服的游戏和官服的有什么差别啊,是自己改吗?私服上的玩家数据谁来维护... 如何学习delphi ,介绍基本好书或教程 Delphi的入门教程 想学Delphi ,请推荐几本入门教程 男情人过生日最佳礼物 如何抓好小学毕业班教育教学质量 肌肤拼音 肌肤拼音是什么 小学班级怎样有效管理 华为nova8pro防窥膜好还是高清钢化膜好 苹果的耳机的话筒小米手机可以用吗? 想要在网上快速找到律师,最有效的办法是什么? 如何抓好小学毕业班的管理工作 跨省案件怎么请律师 有一个暧昧的男生,每天都跟我聊天,现在突然不理我了,为什么 现在惠州哪家银行可做二手房按揭贷款?哪家银行利率最低?有何条件*?等额本金与等额本息还款怎么计算 惠州市首套物业贷款计算,小三房90平内。 如何做好小学毕业班的班级管理工作 高中信息技术教学反思 怎样才能管理好毕业班,班级纪律,学生的学习,及学生的心理等 坊子新区邮政编码是什么 坊子区邮政编码 求delphi的教程 《Delphi 5学习教程》txt全集下载 1/ jwc公式j是代表什么 鱼蛋和香肠的最好吃的烹饪方法 感抗与电阻值:1/jwC,jwL都有什么物理意义 怎样可以做出简单的布丁? 杭州湾房子很多 以后转手困难怎么回复? 为什么杭州湾世纪城的房东都开始卖房子了? 我现在准备买套房买一个杭州湾新区好还是买南昌市的好? 电容阻抗公式中1/wc和1/jwc有什么区别吗?什么情况下加j? 将桌面文件夹拖动到聊天框里发给扣扣好友,怎么拖动不起? 电感复数阻抗 为什么那个电容的复数阻抗就是1/cs啊,不是1/jwc吗 百得煤气淋浴器出水忽冷忽热怎么回事 电容分压原理 向量法中-j*1/wc和1/jwc是不是相等啊? 金属的分类 重金属和轻金属的划分 咽干咽痛吃什么药缓解? 咽喉干痛吃什么药 怎么治疗焦虑不安?