function FileIS64( Filename:string ):Boolean; var tsl:TStringStream; rStr:An...
利用ExitProc变量 在Library的begin ..end.中间是可以写代码 的, 这里可以放置 DLL初始化代码 。如果想要做善后工作,则可以利用ExitProc变量。...恢复原来的 默认值,以便DLL能够继续完成原来默认的善后工作。...ShowMessage('整个DLL的善後程序'); end; DLL_Process_Attach: begin ShowMessage('整个DLL的初始化代码...DLLProc := @MyDLLHandler; MyDLLHandle(DLL_Process_Attach); end....由 上例可以知道,当DLL支援多进程(Thread)的处理时, DllProc非常 适合使用。 本文来自Delphi之窗,原文地址:http://www.52delphi.com
These can’t be used in Delphi. Delphi requires OMF formatted object files....from the DLL directly, using IMPLIB or a similar utility....To import the object file in Delphi, you should now copy the object file to the directory with your Delphi...XE2, which wraps some of the routines exposed by msvcrt.dll....If this is the case, it calls Delphi’s Read, otherwise it uses the _fgetc() routine in msvcrt.dll.
Python For Delphi搭建了Delphi和强大的脚本语言Python的桥梁,使用起来非常方便,让Delphi华丽的界面配合Python强大、简洁、稳定的后台逻辑处理能力,让应用程序模块清晰、...版本 Python For Delphi支持的Python版本为2.3,而最新最稳定的Python是2.4,使用时会提示找不到python23.dll的错误。...按下述方法解决: 设置TPythonEngine的属性,DllName设为python24.dll,RegVersion设为2.4,最关键的是UseLastKnownVersion设为False,不然DllName...3、 安装python24.dll到系统目录,如c:/winnt/system32。...4、 在自己写的Delphi程序中,用TPythonEngine的OnPathInitialization事件设置Lib和DLLs的路径,并且将自己编写的模块所在的目录也加到路径中。
Delphi写的程序,如果在单元的finalization里出现了一些异常操作会导致退出时抛出Runtime Error ,规范的处理办法当然是解决这些异常,但是有些特殊的情况下,比如用了很多的第三方控件...做法其实很简单,就是在 END.之前手工调用Halt释放,并且将Halt抛出的错误屏蔽掉,这样做和正常的DELPHI释放过程没有任何区别,因为End.编译后其实就是一句话 Call Halt0,只是VCL...自己没有屏蔽Halt0里抛出的错误,而是跳出个Runtime Error 来; 首先就是位置的问题,如果是EXE的话,直接在END.之前就行了,如果是Dll的话就麻烦点,需要挂上DllProc,当...wReason = DLL_PROCESS_DETACH时处理。...,因为try…except end捕获的错误都会放到System单元的_HandleOnException中处理,函数检查错误类型是否是DelphiException,如果不是就不处理,这个时候就会被DELPHI
ZaXFuncCollect功能简介ZaXFuncCollect是基于Delphi编写的各类加解密签名等一系列算法的合集,通过DLL动态链接库的方式集成,编码都由Delphi编写可以适用与包括Delphi...有DLL的函数说明文档输出,更加方便快捷的接入到系统。
先看一下使用Delphi开发DLL时如何使用MAIN函数, 通常情况下并不会使用到DLL的MAIN函数,因为delphi的框架已经把Main函数隐藏起来 而工程函数的 begin end 默认就是MAIN...函数的DLL_PROCESS_ATTACH事件的处理代码,如需要完整的处理其他事件, 如 DLL_PROCESS_DETACH,DLL_THREAD_ATTACH, DLL_THREAD_DETACH,...),这样会导致卡死 DLL_THREAD_ATTACH:; DLL_THREAD_DETACH:; end; end; begin DllProc := @DLLEntryPoint...所以解决办法就是 在 DLL_PROCESS_ATTACH 事件中,仅创建并唤醒线程即可(此时即使是唤醒了,线程也是处理等待状态),线程函数会在DLL_PROCESS_ATTACH事件结束后才正式执行(...唯一需要注意的是,一旦DLL_PROCESS_DETACH结束,内存中与DLL相关的PE映像资源可能会被释放掉,所以在后续的操作中尽量不要再对原来的数据进行操作,否则容易导致内存溢出(但其实释放与否是由内核决定的
asp.net 与 asp 的session是无法直接共享的(底层的处理dll也不一样),要想互通session,只能用变通的办法: 一、asp.net -> asp 的session传递 a) 建一个类似...同时不影响原来asp项目的正常运行),有二种做法: a) 自行开发ISAPI 筛选器 ,然后在IIS里,把自己开发的dll加入ISAPI 筛选器 这个方法比较繁琐,技术难度也相对较高,在今天.net的时代...以及 一些ISAPI的开发文章,比如 ISAPI开发介绍 http://blog.csdn.net/mycoolx/article/details/6913048 ISAPI tutorial for Delphi...developers http://delphi.about.com/library/bluc/text/uc060901c.htm delphi IIS ISAPI http://www.cnblogs.com.../ 用Delphi编写 IIS ISAPI 程序 http://download.csdn.net/detail/wwwvvingnet/2229146 在Delphi中用IIS或PWS调试ISAPI程序
核心特性:跨版本完美兼容:利用{$IFDEFUNICODE}宏,底层自动抹平Delphi7以上的版本差异,彻底杜绝中文与JSON乱码。...无视系统底层限制:摆脱Delphi自带WinInet对TLS1.2/1.3的限制,在WindowsXP到Win11上完美握手现代HTTPS接口。...2个dll打天下:本项目内置的libcrypto-1_1.dll和libssl-1_1.dll,可以满足99%以上的HTTPSAPI接口调用需求。无需像老的TIdHTTP那样区分版本。...2.1必须的DLL文件在发布或运行程序时,必须确保环境中有以下两个32位(x86)的动态链接库(非HTTPS请求不需要这两个DLL):libcrypto-1_1.dll(提供基础密码学算法)libssl...防坑警告:为了防止被其他软件残缺版本的DLL劫持,请务必把这两个DLL和你的EXE放在同一个文件夹下。️
<< Buffer << std::endl; } 总结 平平无奇的最简单CM 7. 007-reg 算法难度:⭐ 爆破难度:⭐ 信息收集 运行情况: 经典的用户名+序列号授权验证: 查壳与脱壳: Delphi...编写的32位GUI程序,无壳 查字符串: 大概看了一下,字符串里有个reg.dll,但CM文件只是单一的exe,可能存在释放文件 调试分析 对于Delphi程序,除了直接强行分析之外,还可以借助Delphi...辅助分析工具:IDR(吾爱论坛上有) 因为是窗口程序,所以查窗口的相关内容: 直接查看点击Ok按钮的内容:大概就是把用户输入的用户名和序列号写入到了reg.dll文件中,也就是说这是个dll后缀的文本文件...程序逆向练习,借助工具IDR可以很方便的识别Delphi函数,这个CM使用了经典的重启验证,让验证函数在窗口创建前进行验证,注册机较为复杂,暂时还写不出来 参考资料 – [1] 新160个CrackMe...中间的干扰是无用计算,忽视即可 10. 010-ceycey 算法难度:⭐ 爆破难度:⭐ 信息收集 运行情况: 输入密码登录: 查壳与脱壳: 有UPX壳,使用ESP定律大法即可,这里不再啰嗦 脱壳后:可以看到是Delphi5
首先,大家都知道要在整个系统范围中拦截,需要使用Dll来完成。现在我们打开Delphi 2009,新建一个Dll工程:hookDll。...需要说明的是,Delphi是完全面向对象的编程语言,所以我们不要浪费,这个Dll打算用类的方式完成。于是,在新建的DLL工程中在添加一个Unit Pas,命名为unitHook, 用来写拦截类的处理。...: InitHook; //DLL载入 DLL_PROCESS_DETACH: UninitHook; //DLL删除 end; end; exports StartHook...; //DLL载入 DLL_PROCESS_DETACH: UninitHook; //DLL删除 end; end; ............ begin MemShared...; { 分配DLL程序到 DllProc 变量 } DllProc := @DllEntry; { 调用DLL加载处理 } DllEntry(DLL_PROCESS_ATTACH)
拦截网络数据封包的方法有三种,一是将网卡设为混杂模式,这次就可以监视到局域网上所有的数据包,二是HOOK目标进程的发送和接收的API函数,第三种方法是自己实现一个代理的DLL.在这里我们使用HOOK API...下面是一个尽量简化了的API HOOK的模版,原理是利用消息钩子将DLL中的代码注入到目标进程中,再用GetProcAddress得到API函数入口地址,将函数入口址改为自己定义的函数入口,这样就得到了...HOOK.DLL的代码: Delphi代码 ?...入口函数 {过程功能:进行DLL初始化,释放等 {过程参数:DLL状态 {------------------------------------} procedure MyDLLHandler...后,再新建一个程序调用这个DLL的InstallHook并传入目标进程的主窗口句柄就可: Delphi代码 ?
令人意外的是,该木马使用了多重反逆向分析技术,而且最终的payload是用Delphi编写的,而Delphi在银行木马中并不常见。...依赖的二进制文件之一是vmwarebase.dll: ? vmwarebase.dll是恶意的二进制代码而不是合法文件,其他攻击者使用的技术有PlugX。...vmwarebase.dll 代码的作用是注入和执行 explorer.exe或者 notepad.exe中的prs.png代码。...解密结果为 m5ba+5jOiltH7Mff7neiMumHl2s= 是LoadLibraryA QiF3gn1jEEw8XUGBTz0B5i5nkPY=是kernel32.dll。
以上研究结果来自于delphi cpu调试。 后又经过使用vc++2015编写x64DLL导出测试,跟delphi调试结果相同,而且不做堆栈平衡。
动态链接库文件的扩展名一般是dll,也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用。...调用动态库的两种方法 静态调用 这种用法的前提是在编译之前已经明确知道要调用DLL中的哪几个函数,编译时在目标文件中只保留必要的链接信息,而不含DLL函数的代码;当程序执行时,利用链接信息加载DLL函数代码并在内存中将其链接入调用程序的执行空间中...动态调用 这种方式是指在编译之前并不知道将会调用哪些DLL函数,完全是在运行过程中根据需要决定应调用哪个函数,并用LoadLibrary和GetProcAddress动态获得DLL函数的入口地址。...代码演示 我们先创建一个动态链接库名称为PosPayIntf,最近几章介绍Delphi技术的都是用这个动态库,因为正好因为项目要做一个对接第三方微信支付宝的动态库。 ?...用静态调用动态库相对来说代码比较少,但是我们的动态库必须要放到和这个EXE的程序下,如果DLL文件没有存在,程序则无法运行,提示你少DLL文件。
所以压缩是不可避免了,delphi中的默认压缩算法整了半天不太好使,就看了看7z,在windows下有dll那么就用它吧。...下载7z.dll,还有一个delphi的开发sdk文件,sevenzip.pas。有这两个就可以了。...(sExt='.EXE') then Result := CreateInArchive(CLSID_CFormatPe) else if (sExt='.PE') or (sExt='.DLL...用命令感觉会麻烦一些,使用dll集成在程序中还是挺方便的。
------- 本章难度:★☆☆☆☆☆☆☆☆☆ 课程课件:CM_15.zip ------------------------------------------------------------ Delphi.../BC++ 批量下断脚本 脚本代码,保存为 Delphi.osc var Addr // 局部变量 mov Addr,401000...RESULT // 将地址赋给Addr jmp loop Exit: ret 1.OD直接载入CM课件中的【Project1.exe】这是一个Delphi...addr,esp //把ESP的值,放变量addr中 bphws addr,"r" //下硬件访问断点 /*接着来处理IAT*/ gpa "VirtualProtect","kernel32.dll...找特征APIVirtualAlloc mov VirtualAlloc, $RESULT //把找到的地址放变量VtrtualAlloc中 gpa "CreateThread", "kernel32.dll
程序员 DEV n n xxx模块 xxx 程序员 DEV n n xxx模块 xxx n n 开发计划 开发环境和工具 开发工具 工具 作用 Delphi...7 .net客户端 VBA 开发Excel插件 VS.NET Web页面,Web Service 开发规范 文档名称 位置 Delphi编码规范 系统目录规范...数据库表列表 表名 作用 接口设计 l 描述 l 集成和部署 DLL...附录 第三方组件 Delphi组件 组件名称 版本 用途 .NET组件 组件名称 版本 用途 参考资料 附加文档 文档名称 文件名 描述
前言 delphi7中原本自带的一个Tmediaplayer控件,但是发现有不少视频是无法播放的,于是就想到了用windowsmediaplayer来进行播放。...安装 在Delphi7中选择“Component ——Import ActiveX Control...”菜单,会弹出“Import ActiveX0”窗口。...注意上面有两个Windows Media Player,我们要选择那个为wmp.dll的其中Class names里面有三项,另一个是系统里自带的TMediaPlayer,我们不装。...窗口大小问题 在DELPHI中使用微软的WindowsMediaPlayer ActiveX控件的时候,如果想让控件随窗口大小一起改变, 最常用的方法就是设置控件的Align属性,但是你会发现,对于ActiveX
入口指针获取,根据不同的API名称自动获取相应的Dll(ntdll,kernel32...)export 最好还能支持简单的脚本,方便API之间的传参,初步定为使用javascript语法。...在做第一项的时候跟踪了delphi传递参数的内容,发现class function实际上第一个参数(eax,edx,ecx)eax传递的是类的基址。 而非静态函数,则是对象基址。