大佬教程收集整理的这篇文章主要介绍了将DLL注入的代码从Delphi 7转换为Delphi XE2,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我制作的代码:
procedure TForm1.InjectDLL(const ADLLName: String; targetproc: Cardinal); var dllname: String; pDLLname,pStartAddr: Pointer; bw: NativeUInt; hProcess,hRemoteThread: THandle; TID: Cardinal; begin hProcess := OpenProcess(PROCESS_@R_696_10636@ACCESS,false,targetproc); pDLLname := VirtualAllocEx(hProcess,length(dllName) + 1,MEM_COMMIT or MEM_RESERVE,PAGE_EXECUTE_READWRITE); WriteProcessMemory(hProcess,pDLLname,Pointer(dllName),bw); pStartAddr := GetProcAddress(GetModuleHandle('kernel32.dll'),'LoadLibraryA'); hRemoteThread := CreateRemoteThread(hProcess,nil,pStartAddr,TID); WaitForSingLeobject(hRemoteThread,INFINITE); showmessage('Fehler ' + IntToStr(GetLastError) + ': ' + SysErrormessage(GetLastError)); CloseHandle(hProcess); end;
我只需要将hProcess和hRemoteThread更改为THandle并将bw更改为NativeUInt. showmessage告诉我一切正常.由于String类型从d7更改为XE2,因此必须存在细微差别.我也尝试将dll名称转换为PAnsiChar,但它对我没有任何改变.
希望我能为您发布足够的信息.
以上是大佬教程为你收集整理的将DLL注入的代码从Delphi 7转换为Delphi XE2全部内容,希望文章能够帮你解决将DLL注入的代码从Delphi 7转换为Delphi XE2所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。