private void button1_Click(object sender, EventArgs e)
{
Send(richTextBox1.Text);
}
private void button2_Click(object sender, EventArgs e)
{
Send(textBox1.Text);
}
发送东西:
void Send(string command)
{
try
{
callbytes = BitConverter.GetBytes(cbuf_address);
if(command == "")
{
MessageBox.Show("You must enter a command before pressing Send!", "Error", MessageBoxButtons.OK);
}
else
{
if(cbuf_addtext_alloc == IntPtr.Zero)
{
cbuf_addtext_alloc = VirtualAllocEx(hProcess, IntPtr.Zero, (IntPtr)cbuf_addtext_wrapper.Length, AllocationType.Commit | AllocationType.Reserve, MemoryProtection.ExecuteReadWrite);
commandbytes = System.Text.Encoding.ASCII.GetBytes(command);
commandaddress = VirtualAllocEx(hProcess, IntPtr.Zero, (IntPtr)(commandbytes.Length), AllocationType.Commit | AllocationType.Reserve, MemoryProtection.ExecuteReadWrite);
int bytesWritten = 0;
int bytesWritten2 = commandbytes.Length;
WriteProcessMemory(hProcess, commandaddress, commandbytes, commandbytes.Length, out bytesWritten2);
Array.Copy(BitConverter.GetBytes(commandaddress.ToInt64()), 0, cbuf_addtext_wrapper, 9, 4);
Array.Copy(callbytes, 0, cbuf_addtext_wrapper, 16, 4);
WriteProcessMemory(hProcess, cbuf_addtext_alloc, cbuf_addtext_wrapper, cbuf_addtext_wrapper.Length, out bytesWritten);
IntPtr bytesOut;
CreateRemoteThread(hProcess, IntPtr.Zero, 0, cbuf_addtext_alloc, IntPtr.Zero, 0, out bytesOut);
if(cbuf_addtext_alloc != IntPtr.Zero && commandaddress != IntPtr.Zero)
{
VirtualFreeEx(hProcess, cbuf_addtext_alloc, cbuf_addtext_wrapper.Length, FreeType.Release);
VirtualFreeEx(hProcess, commandaddress, cbuf_addtext_wrapper.Length, FreeType.Release);
}
}
cbuf_addtext_alloc = IntPtr.Zero;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK);
}
}
我非常喜欢,所以如果有人可以提供帮助,我将不胜感激 我有这个问题它可能是小事无论如何请回复sooon!
谢谢你。答案 0 :(得分:1)
喜欢这个
private void button1_Click(object sender, EventArgs e)
{
if(!String.IsNullOrEmpty(richTextBox1.Text))
{
Send(richTextBox1.Text);
}
else if(!String.IsNullOrEmpty(textBox1.Text))
{
Send(textBox1.Text);
}
else
{
return;
}
}
答案 1 :(得分:0)
您必须确保连接Click
事件,以便触发代码。双击按钮时,会自动在设计器代码中自动设置(自动生成)。但是,您还可以在查看事件列表时自动生成方法和订阅。
复制事件功能或手动编码不会自动执行此操作。但是,在代码已经存在的情况下,您现在应该能够在设计器中从Click事件下拉列表中选择它。