日期:2014-05-19  浏览次数:21425 次

使用c# 向游戏里CALL汇编模块,解决问题100分全送。
我在使用C#做诛仙的外挂。
现在已经可以从游戏进程中读取游戏数据了。
但是如何用CALL调用游戏里的指令还不会。
我已经知道怎么使用MASM32编写DLL给C#调用了。
但是我不知道怎么把游戏进程这个参数告诉它。
我只会一点C#,对汇编一无所知,游戏指令CALL也是从网上搜到的。
比如汇编代码是这样的:
//==================根据怪物ID进行选择========================
    addr:=pointer($5785c0);     //7.3更新
    asm
        pushad
        mov   esi,gwid//怪物ID
        push   esi
        MOV   ECX,DWORD   PTR   DS:[$900adc]
        MOV   ECX,DWORD   PTR   DS:[ECX+$20]
        add   ecx,$D4
        call   addr
        popad
end;
他用的什么语言我也不清楚,
我想我大概要做的就是把asm和end;之间的汇编做成DLL
然后给C#调用。
但是这段汇编该在那个进程里使用,怎么告诉它?
也就是说,我想把游戏进程这个参数加进去,我该怎么做?


------解决方案--------------------
http://www.codeproject.com/csharp/unmanage.asp

看看吧,全英文:)

是用VC把汇编嵌入写成dll,然后C#调用VC的dll。。。

这弯走的够长。。。
------解决方案--------------------
The .NET Framework does not support this. Managed code has no concept of a consistent value for a function pointer because these function pointers are proxies that are built dynamically.
------解决方案--------------------
我只会一点C#,对汇编一无所知,游戏指令CALL也是从网上搜到的。
????????????????
这样就开始写外挂了,佩服楼住的勇气!
------解决方案--------------------
写外挂最好还是不要用c#吧
------解决方案--------------------
我顶,没作过这个
------解决方案--------------------
直接用VC做不是很简单?

干嘛要C#做这个?