浅谈进程、线程创建过程以及小细节

什么进程线程一大堆,搞得头疼,甚至还有个协程,
今天就带大家搞清楚
1、房间是用来住人的,很好理解,
2、同理进程是用来装载线程执行的,
3、进程是资源分配的最小单位?怎么理解呢,房子是用来放家具,桌子板凳、床的,方便人居住,那给进程分配个内存空间啥的没问题吧,外加结构体存个cpu调度分片信息
4、线程是cpu调度的最小单位,浅层:单核cpu给线程分配时间片,在阻塞、执行、就绪间徘徊

32位中每个进程都有自己的虚拟4G内存,但实际使用只有前2G,但也不全是,x96dbg拉个进程看下,开始并不是0
在这里插入图片描述最后结束也并不是8个F,而是7FFF000到最终4G保留,也验证了分配只用了这些
在这里插入图片描述放个图吧,正常进程能用的就用户模式区
在这里插入图片描述双击exe会发生什么,
1、映射exe到进程内存,
2、创建内核对象eprocess,(每创建一个进程都会创建一个这)
3、映射系统的ntdll.dll,这个dll是承上启下的,用户层能接触到的最接近系统的dll
4、创建线程内核对象ethread,每创建一个线程就是创建一个这
5、系统启动线程
映射ntdll。ldrlninityalizethunk
线程开始执行
使用studype看到的导入表并不全面,因为只记录了一层导入dll,全面的得看x96dbg中的符号
在这里插入图片描述猜测:
使用:简单的游戏保护一般在程序启动时加载保护dll,可以在这里替换作弊dll
或者在装在线程时替换进程空间,等待后续学习

下一篇:c创建进程,多线程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值