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

news/2024/5/5 1:25:46/文章来源:https://blog.csdn.net/m0_72827793/article/details/130119328

注意我们这里观察的是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.luyixian.cn/news_show_286021.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SM59 RFC 目标 SAP_PROXY_ESR 设置到服务资源库连接的检查列表

设置到服务资源库连接的检查列表 1. 企业服务资源库的地址必须在 SAP 系统中已知 检查报表 SPROX_CHECK_IFR_ADDRESS。2. 要连接到企业服务资源库,必须维护 RFC 目标 "SAP_PROXY_ESR"。此 RFC 目标将由代理生成 / 事务 SPROXY 使用。必须使用事务 SM59 进…

规模化敏捷框架:Scrum@Scale

Scrum 敏捷方法有助于团队成员之间更有效地合作,实现共同的业务目标。但是当一个组织想要扩展 Scrum 方法到更多的团队时,应该如何实施?Scrum 仅为单团队开发、交付和运维产品提供了一个框架,而 ScrumScale(SS&#xf…

Ubuntu20.04 安装QGIS

qgis的git: GitHub - qgis/QGIS: QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS) qgis的官网:Welcome to the QGIS project! qgis插件包下载地址:https://plugins.qgis.org/plugins/ 1.Prerequisi…

【LeetCode每日一题: 1039. 多边形三角剖分的最低得分 | 暴力递归=>记忆化搜索=>动态规划 | 区间dp 】

🍎作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎 🍎座右…

【从零开始学Skynet】基础篇(七):Mysql数据库常用API

在上一篇中我们完成了对Mysql数据库的准备工作之后,这一篇我们写一个程序测试一下。 1、Mysql API 在写程序之前,我们先学习一下Mysql数据库常用API的使用: API说明mysql.connet(args)连接数据库,参数args是一个Lua表&#xff0c…

【2023 年第十三届 MathorCup 高校数学建模挑战赛】C 题 电商物流网络包裹应急调运与结构优化问题 建模方案及代码实现

【2023 年第十三届 MathorCup 高校数学建模挑战赛】C 题 电商物流网络包裹应急调运与结构优化问题 1 题目 电商物流网络由物流场地(接货仓、分拣中心、营业部等)和物流场 地之间的运输线路组成,如图 1 所示。受节假日和“双十一”、“618”等…

octave安装使用——吴恩达机器学习

下载octave 解压后双击octave.vbs进行安装 配置 pkg rebuildpkg list 使用基础命令 使用矩阵命令 移动数据 size:矩阵的行和列length:行和列的最大值 读取和存储数据 load:加载文件who:所有变量whos:更详细的变量…

Java容器使用注意点

前置:问题 判空集合转map集合遍历集合去重集合转数组数组转集合 一:集合判空 《阿里巴巴 Java 开发手册》的描述如下: 判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size()0 的方式。 我们在开发中也…

EightCap易汇:外汇投资入门需要了解哪些必要知识?

外汇市场是国际投资市场,日内交易量巨大,盈利机会极多。外汇是一种含有杠杆的投资产品,杠杆带来了高收益,也会带来高风险,对于外汇新手来说存在一定难度。新手投资者要如何交易,才能抓住外汇市场的盈利机会…

金三银四没把握住,凉了...

大家好,前两天跟朋友感慨,今年的铜三铁四、裁员、疫情导致好多人都没拿到offer!现在互联网大厂终于迎来了应届生集中求职季。 对于想跳槽的软件测试人来说,绝对是个找工作的好时机。这时候,很多高薪技术岗、管理岗的缺口和市场需…

Nginx 正向代理、方向代理、端口转发

正向代理就是客户端代理,代理客户端,服务端不知道实际发起请求的客户端 正向代理中,proxy和client一般同一个lan或者网络可达,server与client一般不可达(缓存场景除外) 正向代理类似一个跳板机&#xff0c…

PNAS:土地利用和土地覆盖的变化决定了保护区的可持续性和影响

PNAS 中文题目: 土地利用和土地覆盖的变化决定了保护区的可持续性和影响 英文题目: Land-use and land-cover change shape the sustainability and impacts of protected areas 作者: Determinants and impacts of protected area remova…

ElasticSearch安装、启动、操作及概念简介

ElasticSearch快速入门 文件链接:https://pan.baidu.com/s/15kJtcHY-RAY3wzpJZIn4-w?pwd0k5a 提取码:0k5a 有些软件对于安装路径有一定的要求,例如:路径中不能有空格,不能有中文,不能有特殊符号&#xf…

若依— — 快速入门【源码分析】

若依— — 快速入门 1 什么是若依 官网地址:http://www.ruoyi.vip/ 若依是一款优秀的开源项目,涉及到企业开发中大部分的管理系统,我们依此为模板进行二次开发,可以快速开发出符合大部分公司中的后台管理系统。 2 使用若依 使用开…

Spring Security --- authorizeRequests配置

目录 自定义配置类之访问权限 匹配顺序规则 访问控制包含 访问控制url匹配 访问控制方法 角色、权限判断 使用注解进行角色权限控制 自定义配置类之访问权限 http.authorizeRequests()主要是对url进行访问权限控制通过这个方法来实现url授权操作支持链式写法 匹配顺序…

C++ 数组、指针、数组指针、指针数组、多级指针、STL-map、结构体 的 初始化 及其 初始化赋值

C 数组、指针、数组指针、指针数组、多级指针、STL-map、结构体 的 初始化 及其 初始化赋值C 数组、指针、数组指针、指针数组、多级指针、STL-map、结构体 的 初始化 及其 初始化赋值C 数组、指针、数组指针、指针数组、多级指针数组一维数组初始化:二维数组初始化…

算法训练Day30:332.重新安排行程 51. N皇后 37. 解数独

文章目录重新安排行程题解[N 皇后](https://leetcode.cn/problems/n-queens/description/)题解解数独题解重新安排行程 CategoryDifficultyLikesDislikesContestSlugProblemIndexScorealgorithmsHard (47.57%)7650--0 TagsCompanies 给你一份航线列表 tickets ,其…

零基础如何入门网络安全?【2023最新】

前言 最近收到不少关注朋友的私信和留言,大多数都是零基础小友入门网络安全,需要相关资源学习。其实看过的铁粉都知道,之前的文里是有过推荐过的。新来的小友可能不太清楚,这里就系统地叙述一遍。 01.简单了解一下网络安全 说白…

【数据结构与算法篇】时间复杂度与空间复杂度

目录 一、数据结构和算法 1.什么是数据结构? 2.什么是算法? 3.数据结构和算法的重要性 二、算法的时间复杂度和空间复杂度 1.算法效率 2.算法的复杂度 3.复杂度在校招中的考察 4.时间复杂度 5.空间复杂度 6.常见复杂度对比 7.复杂度的OJ练…

射频功率放大器在液体超声声强的光电测量中的应用

实验名称:液体中超声声强的光电测量 研究方向:光电测量 测试目的: 声强是描述声场的基本物理量口,超声效应直接与声强有关。例如在工程技术领域,液体中的声场分布直接影响流场分布口,声强的大小影响着超声波…