所以我一直在调试这个并且发送了一个将数据包发送到服务器的功能
这是函数
Naked void CB::Send_To_Server(CHARARRAY Buffer, int Length)
{
__asm
{
PUSH ESI
LEA EAX, Length
MOVZX ECX, DWORD PTR DS : [Buffer]
PUSH ECX
PUSH EAX
MOV ECX, NetworkClass
CALL Send_Packet_Original_Address
POP ESI
RET
}
}
这里的问题首先是我调试我的应用程序时显示的问题 该函数有3个参数而不是2个(缓冲区,长度,长度)和 当我使用它时,它实际上是第一次推动两次长度 正确的长度第二次它是一些奇怪的负长数字 -29470056< ----不是一个给我看一个例子的值
所以你可能会发现我对c ++和asm都很糟糕,所以如果有人有 关于如何解决这个问题的想法或者说这很正常我会很感激你的帮助:)
答案 0 :(得分:3)
为了在名称slug
中引用参数,必须在函数入口处设置为EBP
的值,如果函数未声明为裸,则自动完成。