4.12~(小组成员对话预习)

news2024/9/22 4:11:20

注意我们这里观察的是XP的kernel32.dll,到win10是有变化的在这里插入图片描述

看了这个函数,似乎是让BasepExeLdrEntry不存在的时候初始化一遍,然后进行对比是否已经加载过这个dll,那么如果加载下一个dll的时候,BasepExeLdrEntry是不是还是非空状态,v3不就仍然保存着上一个dll的地址了吗
在这里插入图片描述
看了交叉引用也没发现有哪里把它至0的

有标记,就不加载了

问题在于我刚刚框出的部分没有见到for,那么查map也就不在这里进行查询,有可能的部分就是这个函数内的回调
在这里插入图片描述
在这里插入图片描述在里面的确见到了赋值和比较
在这里插入图片描述
但是在BasepExeLdrEntry非空的时候,这部分似乎没有被执行?
不符合条件,肯定跳过
那么加载过一次dll,作为全局变量的BasepExeLdrEntry不就保存了上一个dll的数据么,再加载dll的时候又是怎么判断的呢
每个进程都有一个加载map的,对比就知道了加没加过
enumloadmodule就是遍历函数

这个全局变量内部很复杂的
不是简单的dword
是一个结构体的指针
操作系统的全局变量,几乎都是大结构
不过问题在于,这个全局变量在加载第一个dll的时候被赋值过了,那么加载第二个dll的时候,就不会执行if里面的内容,也就是不会遍历,那又如何去判断是否加载过第二个dll呢
那万一是,空才是加载过了呢
这个得调过才懂
不能按正常经验判断
有些结构,头,就有那种标志位
表示状态的
在这里插入图片描述
按照分析来说应该是非空加载过了才对
至于动态调试,我的电脑是win10,看到的不太一样
在这里插入图片描述
尤其是不知道怎么找全局变量BasepExeLdrEntry的地址
即使是试着把本机的kernel32.dll丢进ida分析,却得不到代码
在这里插入图片描述
extrn,也就是本机的kernel32.dll也是引用另一个地方的LoadLibraryExW_0
注意到dbg显示的模块是KernelBase,去找了这个dll
在这里插入图片描述

自己部分

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
https://learn.microsoft.com/zh-cn/windows-hardware/drivers/ddi/wdm/nf-wdm-rtlinitansistring
LoadLibraryExA
LoadLibraryExW这两个最开始两个分别对ANSI、Unicode的计数字符串进行了初始化然LoadLibraryExA底层调用了LoadLibraryExW,跟进LoadLibraryExW里面又跟进了LoadDll
在这里插入图片描述
进里面走了一圈跳出来了,最开始的时候LoadLibraryExW里面调动RtALLocateheap做了一个堆中内存块的分配,最后在RtFreeUnicodeSting中做了个释放
在这里插入图片描述
在这里插入图片描述On Windows 10, GetProcAddress calls LdrGetProcedureAddressForCaller.
在这里插入图片描述GetProcAddress进入从LdrGetProcedureAddressForCaller又跳到了EnterCriticalSection
https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-entercriticalsection

这些函数可以了解一下,最关键还是把整体流程整理清楚

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416715.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

05-vue3的生命周期

文章目录1.生命周期定义钩子函数2.vue3中的生命周期1.普通写法2.setup中写生命周期区别1.生命周期定义 每个 Vue 实例在被创建时都要经过一系列的初始化过程。 例如:从开始创建、初始化数据、编译模板、挂载Dom、数据变化时更新DOM、卸载等一系列过程。 我们称 这一…

【MyBatis】你还不会使用MyBatis逆向工程来提高你的开发效率吗?

文章目录MyBatis逆向工程1、快速入门2、逆向工程配置文件参数详解3、QBC查询MyBatis逆向工程 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表(Hibernate是支持正向工程的)逆向工程:先创建数据库表&#…

Vue3技术2之ref函数、reactive函数、Vue3中的响应式原理

Vue3技术2ref函数处理基本类型App.vue处理对象类型App.vue总结:ref函数reactive函数只能修改对象类型App.vue完善代码App.vue总结:reactive函数Vue3.0中的响应式原理回顾Vue2的响应式原理Vue3响应式原理模拟Vue2中实现响应式index.html模拟Vue3中实现响应…

二分搜索树

一、概念及其介绍 二分搜索树(英语:Binary Search Tree),也称为 二叉查找树 、二叉搜索树 、有序二叉树或排序二叉树。满足以下几个条件: 若它的左子树不为空,左子树上所有节点的值都小于它的根节点。若它…

程序环境和预处理(上)——“C”

各位CSDN的uu们你们好呀,今天小雅兰的内容是C语言中的程序环境和预处理这个知识点,这块知识点是小雅兰地C语言的最后一块知识点了,以后可能会更新一些C语言的书籍的阅读,比如:《C Primer Plus》和《C语言深度剖析》。…

腾讯云快直播低延时播放质量的优化实践

直播已经潜移默化成为许多人日常生活密不可分的一部分。无论是紧张刺激的比赛直播,还是垂涎欲滴的美食直播,亦或者自卖自夸的购物直播,大家都不希望在观看时出现长时间的加载和卡顿,对一些需要观众及时反馈的直播场景,…

【vue】Vue 全局API 详细介绍(nextTick、set、delete、......)

文章目录一、Vue.extend(options)二、 Vue.component三、Vue.nextTick([callback,context])/this.nextTick([callback,context])四、Vue.set(target,propertyName/index,value)/this.set(target,propertyName/index,value)五、Vue.delete(target,propertyName/index)六、Vue.fi…

算法:链表和数组哪个实现队列更快

背景 对于这个问题,我们先来思考一下数组和链表各有什么特点。 数组:连续存储,push 很快,shift 很慢。 链表:非连续存储,add、delete 都很快,但是查找很慢。 所以,我们可以得出结论…

QT 安装 及环境变量配置及出现的错误的解决方法

文章目录QT安装教程(win版)下载链接点击 产品 Qt开发工具点击 下载Qt下滑点击 开源用户下载下滑点击 下载Qt在线安装程序点击 win版本下载打开程序这一步可能遇到的问题1.在自己有Qt账号的情况下,下一步无法点击2.弹出一句话You need to verify your Qt account eai…

基础排序算法【快速排序+优化版本+非递归版本】

基础排序算法【快速排序优化版本非递归版本】💯💯💯⏰【快速排序】◽1.hoare法◽2.挖坑法◽3.前后指针法◽4.特性总结⏰【优化版本】◽1.随机选key◽2.三路取中◽3.小区间优化⏰【非递归版本】⏰【测试效率】排序OJ(可使用各种排序跑这个OJ)⏰…

CDH 6.3.2集群安装部署

文章目录CDH 6.3.2集群安装部署一 CDH概要1.1 CDH的背景1.2 CDH介绍二 环境准备2.1 安装部署环境2.2 部署规划2.3 服务器主机映射2.4 服务器免登录配置2.5 防火墙关闭2.6 关闭Selinux2.7 设置最大打开文件2.8 关闭最大透明页面压缩2.9 设置Swappiness空间2.10 安装JDK2.11 MySQ…

mysql中增删改成的练习

文章目录一、表的创建1.student表的数据2、课程表的数据course3、学生成绩表的数据二、操作序列1、查询计算机系cs的全体学生学号、姓名和性别2、检索选修了课程号为2的学生号和姓名3、检索至少选修了三门课以上的学生号4、检索选修了全部课程的学生5、在原表的基础上创建一个视…

java并发-线程池

java并发-线程池 线程池的介绍 Java线程池表示一组等待工作并多次重用的工作线程。在线程池的情况下,创建了一组固定大小的线程。服务提供者从线程池中拉出一个线程并分配一个作业。完成作业后,线程再次包含在线程池中。 使用线程池可以节省多线程应用…

Revit中如何绘制四面倾斜的屋顶?

一、Revit中如何绘制四面倾斜的屋顶? 如下图所示,像这种坡屋顶有两种方法进行绘制。具体操作如下。 第一种:定义坡度。 1、点击建筑选项卡中的屋顶按钮。 2、选择使用矩形工具。将偏移值修改为500。将屋顶迹线绘制出来。 3、选中全部屋顶迹…

信号浪涌保护器SPD选型方案

1.最大连续工作电压(Uc):信号电路的最大电压必须小于Uc 最大连续工作电压Uc是最大工作信号电压,是电涌保护装置长期运行的信号电压或直流电压的最大有效值。这也是在额定漏电流条件下线与线之间或线与地之间的最大电压&#xff0…

UFT常用检查点的使用

录制时Flight自动打开。创建三个Action,分别命名为01_Login/02_New Order/03_Logout, 在Action里录制对应的Login/New Order/Logout操作。用飞机票预定系统订票,在02_New Order中设置起飞和到达城市参数化,用本地表数据(至少2组数…

【排序算法(二)】选择排序(直接选择排序堆排序)

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录1、直接选择排序1.1 …

腾讯云轻量应用服务器搭建网站教程(WordPress为例)

腾讯云轻量应用服务器搭建WordPress网站教程,先安装WordPress应用镜像,然后远程连接轻量应用服务器获取WP用户名和密码,域名DNS解析到轻量服务器IP地址,登陆WordPress后台管理全过程,腾讯云百科来详细说下腾讯云轻量服…

作用域、闭包的理解、GC算法

1、全局作用域的变量是不会自动的的释放掉的 例如在 <script >let title "hello world"function coming(){alter(title) }</script> 只要不关闭网页或者浏览器&#xff0c;我们都可以在控制台调用 2、作用域环境我们可以理解为一块内存数据 3、函数作…

研报精选230416

目录 【行业230416国联证券】汽车行业4月周报&#xff1a;上海车展期待值高&#xff0c;政策加码一体化压铸【行业230416国联证券】农林牧渔行业周报&#xff1a;低猪价加深去化幅度&#xff0c;高标准农田建设推进【个股230416安信证券_万华化学】Q1业绩超预期&#xff0c;TDI…