看了这个贴子http://topic.csdn.net/u/20091211/21/60be1faa-c7c3-48cd-b457-c658b8317c30.html
我想给他转换成Delphi版的,但是遇到问题,不知道怎么获取程序入口点,C语言用的是ImageLoad获取程序的入口点的.Delphi怎么获取程序入口点,
谁要是有能力翻译一下?

解决方案 »

  1.   

    另外这种注入DLL的原理如下:1.  用CreateProcess(CREATE_SUSPENDED)启动目标进程。 2.  找到目标进程的入口,用ImageHlp中的函数可以实现。//ImageHlp vc++里的3.  将目标进程入口的代码保存起来。4.  在目标进程的入口写入LoadLibrary(MyDll)实现Dll的注入。5.  用ResumeThread运行目标进程。6.  目标进程就运行了LoadLibrary(MyDll),实现DLL的注入。7.  目标进程运行完LoadLibrary(MyDll)后,将原来的代码写回目标进程的入口。8.  目标进程Jmp至原来的入口,继续运行程序。
      

  2.   

    TMBW = function(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; stdcall;
    MBW: TMBW;  {声明函数 MBW}inst := LoadLibrary('user32.dll');
      if inst <> 0 then
        @MBW := GetProcAddress(inst, 'MessageBoxW');这样?
      

  3.   

    我是楼主.求翻译 http://topic.csdn.net/u/20091211/21/60be1faa-c7c3-48cd-b457-c658b8317c30.htmlto funxu
    求翻译呢...
      

  4.   


    我不是脱壳,只是找入口点,程序启动的入口的地址(不管有壳没壳),
    直接求翻译吧,这个地址我已经发出来了,这种注入DLL方法很好哦,具体可以看1楼贴的思路
      

  5.   

    http://blog.csdn.net/staryy/article/details/3410451这个很详细,可惜是VC的,很多看不懂
      

  6.   

    [Quote=引用 4 楼 ww949494 的回复:]
    我是楼主.
    求翻译 http://topic.csdn.net/u/20091211/21/60be1faa-c7c3-48cd-b457-c658b8317c30.html
    to funxu
    求翻译呢...
    [Quote]
    抱歉我对c不是很熟,如果是自己的程序,我给的代码可以实现取得程序入口点,不过如果Lz需要修改其他程序进程内存就另说了因为不仅需要hook注入而且ReadProcessMemory也需要首先获取进程权限,然后再进行修改,而且要先知道修改进程的函数所占内存的大小,然后自己做一个同样大小的函数进行替换 大概4年前我做过类似的东西,不过现在完全忘记了
      

  7.   

    PE头看一看啊.
    为什么不看PE头呢.入口地址是记录在PE头上的啊
      

  8.   

    VC的自己看看翻译下就可以了
    http://topic.csdn.net/u/20080606/11/2f9dd8b1-1649-4de6-88db-6d7bbbce95bf.html
      

  9.   

    用vs编译一个dll出来。
    然后用delphi调用这个dll里的方法。这样就不需要翻译了..