c语言获取栈可用大小,[求助]求教各位大神如何获得C语言函数体的大小?
2012-2-21 16:34
以下是小弟自己用VC写的线程注入代码。
程序前边都没有问题。
问题在CreateRemoteThread函数调用后,目标进程会崩溃。
我想可能是我写入目标进程的代码不对造成的,可是鼓秋好长时间了
还是没能找出错误的根源。
所以,哪位大神能帮小弟看一眼程序吗。
顺便指出到底是哪里出了问题,谢谢了。
#include "stdafx.h"
#include
BYTE bCodeData[1024] = {0};
static DWORD Myfunc(LPVOID *pParam)
{
HWND TestHwnd = FindWindow(NULL,TEXT("1.0MFC"));
MessageBox(TestHwnd, TEXT("MyThread"), TEXT("aaaaaaaa"), MB_OK);
return *(DWORD*)pParam;
}
int _tmain(int argc, _TCHAR* argv[])
{
BYTE* pMyFunAddr = (BYTE*)(DWORD)Myfunc;
int i = 0;
do
{
bCodeData[i++] = *pMyFunAddr++;
}while(*pMyFunAddr != 0xc3); //ret = c3
int iError;
HWND TestHwnd = FindWindow(NULL,TEXT("1.0MFC"));
if(TestHwnd == NULL)
{
iError = GetLastError();
printf("FindWindow Error = %d",iError);
getchar();
return 1;
}
DWORD PID, TID;
TID = ::GetWindowThreadProcessId (TestHwnd, &PID);
HANDLE hProcess;
hProcess = OpenProcess(PROCESS_ALL_ACCESS,false,PID);
char szBuffer[10] = {0};
*(DWORD*)szBuffer=1000;
void *pDataRemote =(char*) VirtualAllocEx( hProcess, 0, sizeof(szBuffer), MEM_COMMIT,
PAGE_READWRITE );
iError = ::WriteProcessMemory( hProcess, pDataRemote, szBuffer,sizeof(szBuffer),NULL);
if(!iError)
{
printf("WriteProcessMemory Data Error = %d",iError);
getchar();
return 1;
}
PDWORD pCodeRemote = (PDWORD) VirtualAllocEx( hProcess, 0, i, MEM_COMMIT,
PAGE_EXECUTE_READWRITE );
WriteProcessMemory( hProcess, pCodeRemote, (BYTE*)(DWORD)Myfunc, i, NULL);
if(!iError)
{
printf("WriteProcessMemory Code Error = %d",iError);
getchar();
return 1;
}
HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0,
(LPTHREAD_START_ROUTINE) pCodeRemote,//
pDataRemote, 0 , NULL);
DWORD h;
if (hThread)
{
::WaitForSingleObject( hThread, INFINITE );
::GetExitCodeThread( hThread, &h );
printf("run and return %d ",h);
::CloseHandle( hThread );
}
return 0;
}
c语言获取栈可用大小,[求助]求教各位大神如何获得C语言函数体的大小?相关推荐
- python 扯线木偶_Python计算器求助~求大神指导~QAQ急!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 from tkinter import * root = Tk() root.title('计算器') exp = StringVar() #用于在存储文 ...
- python中下拉菜单大小_请问各位大神如何将下拉菜单的文字设定成一个值?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 from tkinter import * from tkinter.ttk import Combobox class Calculator: def ...
- Java页面跳转失效_求助各位java大神,为什么表单提交之后跳转页面失灵
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本人java菜鸟一枚请各位java大神帮忙看看为什么我的表单能提交,但是就是跳转不到处理页面,跳转功能时灵时不灵的.小女子在此先谢过了! 这下面是JQue ...
- 紧急求助,各位大神看看这个ADC采集电路是什么问题?
大家好,我是记得诚. 最近逛论坛,看到一个帖子,如下: 电路图如下,是个低功耗电池电压采集方案,多次通电后,Q1无情的冒烟了. VDD是低功耗外设电压,低功耗下VDD=0V,唤醒后VDD=3.3V. ...
- ps如何修改图片大小尺寸_PS新手入门教程:学习如何修改画布的大小
PS新手入门教程:学习如何修改画布的大小.在photoshop中,可以把画布理解为一张白纸,而我们要处理的图像可以理解为这张白纸表面上的画.我们修改画布的大小时,图像并不会随着画布的大小而整体变大或缩 ...
- 数据库安全小白紧急求助论坛大神,困扰许久
数据库安全小白紧急求助论坛大神,困扰许久 mircosoft SQL server 2008 R2怎样才能逃过甚至杜绝外来IP不断尝试SA密码? 求助各位论坛大神,封闭1433端口,设置数据库访问策略 ...
- 求助大神:用C#编辑计算器,怎么实现连加、连除功能啊!!!!!
基础的计算器会做,但是没有连加.连减.连除.连乘等功能就是一个BUG呀!求助哪位大神,怎么实现连加功能啊,谢谢
- matlab 12位 显示不出来,求助大神,为何不同机器运行MATLAB结果不同
求助:不同机器运行MATLAB结果不同 我调用MATLAB优化工具箱的库函数fmincon,使用相同的初始解(可行解),对同一个问题进行局部搜索(算法为序列二次规划,即SQP),但在不同机器上得到的结 ...
- 不同cpu matlab,求助大神,为何不同机器运行MATLAB结果不同
求助:不同机器运行MATLAB结果不同 我调用MATLAB优化工具箱的库函数fmincon,使用相同的初始解(可行解),对同一个问题进行局部搜索(算法为序列二次规划,即SQP),但在不同机器上得到的结 ...
最新文章
- 如何正确排序整数数组
- MIT用超导体制成极低功耗神经元,能效接近人类大脑,比计算机高4个量级
- 剧本杀,继狼人杀之后的下一个风口
- 各种字符串Hash函数
- 利用BitLocker和VHD实现共享文件加密
- 计算机硬件基础电路参数测量,硬件电路设计基础知识.doc
- Mysql索引会失效的几种情况
- sqlserver备份还原丢失dbo_编程实现备份和还原数据库_sqlserver
- java 万年历_改进java万年历,前几天看到别人写的java万年历,其中不足之处多多...
- 8086中寻址方式详解
- 游戏服务器背包设计与实现
- 盘点一道窗口函数的数据分析面试题
- 技术人如何才能做好绩效管理提升团队绩效?
- 搭建Terraria服务器[Centos7/LGSM/泰拉瑞亚]
- linux定时压缩脚本,使用shell脚本对日志文件进行定时压缩
- Python .format()的详细使用(英文版)
- 论军人的战斗意志—亮剑精神
- android5.1官方下载,vllo官方下载
- 三维GIS可视化技术在智慧城市基本建设中的作用
- 代驾APP_第一章_项目环境搭建_第一节
热门文章
- 大数据可视化该如何实现
- 如何针对大数据进行分析
- BI工具选型需考虑哪些问题
- linux中手动配置ip命令,手动配置linux(centos)的IP地址
- 【正在完善】高级CSS特效解析其示范案例
- [运维笔记] - (命令).Windows server常用网络相关命令
- mysql中的day(0_MySQL代码执行0-day漏洞 可本地提权
- win10电脑黑屏只有鼠标箭头_电脑开机就黑屏,只显示鼠标怎么办?别急,简单几步,轻松解决!...
- 大数据Hadoop复习笔记
- 大数据面试都问些什么?