首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    扒虫篇- Bug日志 Ⅷ

    以可变容器数量为最大值进行双层for循环中可变容器添删元素时造成的数据遗漏 for (int i = 0; i<self.AreaArray.count; i++) { Nodes *nodesP...但是,当AArray里面只剩最后一个元素的时候,因为在执行for循环的时候,i都要++,所以不管怎样,此时最小的 i 也是 1,1 不小于1,所以for循环的最后一次不会被执行,造成的结果就是AArray...封装的图片选择上传工具类中UIImagePickerControllerDelegate不执行 @interface ImageUploaderManager : NSObject 不执行的原因是 在VC...中使用这个ImageUploaderManager时,需要设置为全局变量,如果是局部变量的话,很快会被销毁掉,其中的代理自然不会执行了。...我碰到了这个问题,根本原因还是应用功能或界面雷同。

    77930

    防止 Windows 上的内存检查

    return STATUS_INVALID_PARAMETER; // Section must have been created with one of these 2 protection values...好吧,在错误地将标志识别为未记录后,我继续尝试创建我可能创建的最大部分。一切都很顺利,直到我打开ProcessHacker内存视图。PC 几乎无法使用至少一分钟,此后黑客也有一段时间没有响应。...原因 由于我很懒,所以我决定使用Windows Performance Recorder而不是潜入和倒退。这是一个使用 ETW 跟踪的漂亮工具,可以让您深入了解系统上发生的事情。...然后可以在Windows 性能分析器中查看记录的跟踪。 section_wpa.png 这并没有说太多,但至少我们知道在哪里看。...,因为只有这些部分的保留部分会导致速度变慢。

    4.3K80

    BeeHive —— 一个优雅但还在完善中的解耦框架

    主要原因还是考虑学习成本难度以及动态调用实现无法在编译检查阶段检测接口参数变更等问题。...再来具体说说section的作用。 编译器编译源代码后生成的文件叫目标文件,从文件结构上来说,它已经是编译后可执行的文件格式,只是还没有经过链接的过程。...symbol */ } Dl_info;复制代码 这个数据结构的数据默认就是通过 extern int dladdr(const void *, Dl_info *);复制代码 dladdr这个函数来获取...解耦还不够彻底 基于接口Service访问的优点是可以编译时检查发现接口的变更,从而及时修正接口问题。缺点是需要依赖接口定义的头文件,通过模块增加得越多,维护接口定义的也有一定工作量。 3....搜索的时候减少了手动循环过程。 结尾 BeeHive作为阿里开源的一套模块间的解耦方案,思路还是很值得我们学习的。

    2.9K30

    使用 Vanilla JavaScript 框架创建一个简单的天气应用

    当屏幕在 (>700px and ≤1000px) 时,显示三列;当屏幕 (>500px and ≤700px) 时;显示两列;当屏幕 (≤500px) 时,则显示一列。...在这个卡片上,当接口请求成功时,我们需要展示当前城市的名称、所属国家、温度及具体的天气,天气通过图标和文字结合的形式进行展示,如下所示: .ajax-section .city { position:...1、当按钮提交时 当用户点击按钮或者按回车键时,我们的程序应该这么做: 阻止提交按钮的默认行为,防止刷新页面。 获取输入框输入的城市信息。...如果你输多于三个字母的国家简写,而且没有意义(比如 athens,aaaa),API接口 则会不考虑逗号的部分,则按照城市的信息默认搜索,比如直接返回希腊的雅典。...Note #2: 如果一个城市属于多个国家,没有进行逗号精准搜索的话,API 接口也不会把所有相关国家的城市都罗列出来,只会显示一个城市而已。

    1.7K20

    ProcessGhosting-一套通用的免杀,自删除解决方案

    ,NtCreateThreadEx 二、windows删除文件方法 1、在设置的 FILE_SUPERSEDE[1]或者CREATE_ALWAYS[2] 标志的旧文件上创建一个新文件。...但是PsSetCreateProcessNotifyRoutineEx 回调实际上并不是在创建进程时调用,而是在创建这些进程中的第一个线程时调用。...所以在exe映射进内存,但是没有起线程的状态时,安全产品不会认为这个exe是启动状态。...exe:这个可以是任意文件,它的主要作用是获取white exe的进程环境变量,此程序不会被打开 •temp file:这是为black exe创建的temp文件,会被设置为删除状态,并且在启动进程后会自动删除...OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);//获取文件handle if (file == INVALID_HANDLE_VALUE) {

    78841

    使用 Vanilla JavaScript 框架创建一个简单的天气应用

    最近我在浏览国外的一些技术网站时,这个词出现的频率实在是在太高了,好多框架都宣称自己是基于 Vanilla JavaScript。那到底什么是 Vanilla JavaScript 呢?...在这个卡片上,当接口请求成功时,我们需要展示当前城市的名称、所属国家、温度及具体的天气,天气通过图标和文字结合的形式进行展示,如下所示: .ajax-section .city { position:...1、当按钮提交时 当用户点击按钮或者按回车键时,我们的程序应该这么做: 阻止提交按钮的默认行为,防止刷新页面。 获取输入框输入的城市信息。...如果你输多于三个字母的国家简写,而且没有意义(比如 athens,aaaa),API接口 则会不考虑逗号的部分,则按照城市的信息默认搜索,比如直接返回希腊的雅典。...Note #2: 如果一个城市属于多个国家,没有进行逗号精准搜索的话,API 接口也不会把所有相关国家的城市都罗列出来,只会显示一个城市而已。

    1.6K30

    2.10 PE结构:重建重定位表结构

    当程序被加载到内存中时,系统会解析这些重定位信息,并将程序中的各种内存地址进行重定位。...重定位表一般出现在DLL中,因为DLL都是动态加载,所以地址不固定,DLL的入口点在整个执行过程中至少要执行2次,一次是在开始时执行初始化工作,一次则是在结束时做最后的收尾工作,重定位表则是解决DLL的地址问题...重定位表也是分页排列的,每一页大小都是1000字节,通过使用FixRelocPage命令即可查询到当前程序中的重定位块信息,并以第一个为例,查询一下起始地址RVA为1000的页上,有哪些重定位结构,如下图所示...// 定义文件大小 DWORD FileBase = 0; // 保存文件的基地址 // 定义全局变量,来存储DOS,NT,Section头 PIMAGE_DOS_HEADER DosHeader...i = 0; i < Count; ++i) { // 判断是否存在于区段中 DWORD Section_Start = SectionTables[i].VirtualAddress

    31510

    2.12 PE结构:实现PE字节注入

    该技术能够劫持原始PE文件的入口地址,在PE程序运行之前执行ShellCode反弹,执行后挂入后台并继续运行原始程序,实现了一种隐蔽的Shell访问。而我把这种技术叫做字节注入反弹。...读者在使用该函数之前需要通过WinHex找到注入位置,我们以如下截图中的30352为例; 接着读者需要自行准备一段ShellCode代码,只保留代码部分去掉头部变量参数,如下所示; 接着我们使用如下这段代码中的...,有利于快速搜索到缝隙 DWORD FindSpace(LPVOID lpBase, PIMAGE_NT_HEADERS pNtHeader) { // 跳过可选头长度的数据 PIMAGE_SECTION_HEADER...此时读者可自行打开x64dbg调试器,观察此时的程序入口处已经变成了0x47BFF3执行到最后则通过jmp eax跳转到了原始的程序入口处继续执行,这也就是空字节注入的功能,当读者自己将nop指令替换为任意特殊的汇编指令时...当我们对特定的程序插入Shell后,则还需要对该程序增加一个标志,在PE结构中有许多地方可以写入这个标志,例如DOS头部存在一个e_cblp变量,通过向该变量写入一个标志,当需要判断是否被感染时读取此处并检查是否存在特定值即可

    23620

    2.12 PE结构:实现PE字节注入

    该技术能够劫持原始PE文件的入口地址,在PE程序运行之前执行ShellCode反弹,执行后挂入后台并继续运行原始程序,实现了一种隐蔽的Shell访问。而我把这种技术叫做字节注入反弹。...读者在使用该函数之前需要通过WinHex找到注入位置,我们以如下截图中的30352为例;图片接着读者需要自行准备一段ShellCode代码,只保留代码部分去掉头部变量参数,如下所示;图片接着我们使用如下这段代码中的...,有利于快速搜索到缝隙DWORD FindSpace(LPVOID lpBase, PIMAGE_NT_HEADERS pNtHeader){ // 跳过可选头长度的数据 PIMAGE_SECTION_HEADER...,观察此时的程序入口处已经变成了0x47BFF3执行到最后则通过jmp eax跳转到了原始的程序入口处继续执行,这也就是空字节注入的功能,当读者自己将nop指令替换为任意特殊的汇编指令时,也就实现了一款注入...图片当我们对特定的程序插入Shell后,则还需要对该程序增加一个标志,在PE结构中有许多地方可以写入这个标志,例如DOS头部存在一个e_cblp变量,通过向该变量写入一个标志,当需要判断是否被感染时读取此处并检查是否存在特定值即可

    34020

    2.10 PE结构:重建重定位表结构

    Windows系统使用PE(Portable Executable)文件格式来存储可执行程序,其中包括重定位信息。当程序被加载到内存中时,系统会解析这些重定位信息,并将程序中的各种内存地址进行重定位。...重定位表一般出现在DLL中,因为DLL都是动态加载,所以地址不固定,DLL的入口点在整个执行过程中至少要执行2次,一次是在开始时执行初始化工作,一次则是在结束时做最后的收尾工作,重定位表则是解决DLL的地址问题...图片重定位表也是分页排列的,每一页大小都是1000字节,通过使用FixRelocPage命令即可查询到当前程序中的重定位块信息,并以第一个为例,查询一下起始地址RVA为1000的页上,有哪些重定位结构,...// 定义文件大小DWORD FileBase = 0; // 保存文件的基地址// 定义全局变量,来存储DOS,NT,Section头PIMAGE_DOS_HEADER DosHeader =...= 0; i Section_Start = SectionTables[i].VirtualAddress;

    31031

    【Mysql】The DATE, DATETIME, and TIMESTAMP Types

    在表中插入 TIMESTAMP 或 DATETIME 值时,可以指定时区偏移。...非严格模式只检查**月是否在 1 至 12 的范围内,日是否在 1 至 31 的范围内**。这对于在三个不同字段中获取年、月、日,并准确存储用户插入的内容而不进行日期验证的网络应用程序可能很有用。...图片全局参数 system_time_zone系统时区,在MySQL启动时,会检查当前系统的时区,根据系统时区设置全局参数system_time_zone的值。...基于mysql-connector-java-8.0.19 进行分析,使用 com.mysql.cj.jdbc.Driver,在获取java.sql.Connection的过程会确定时区,调用如下方法。...通常是因为没有在URL里面设置时区属性,某些系统下,MySQL默认使用的是系统时区CST(CST 在 RedHat 上是 +08:00 时区),而应用和MySQL 建立的连接的session time_zone

    42130

    驱动开发:内核特征码扫描PE代码段

    在笔者上一篇文章《驱动开发:内核特征码搜索函数封装》中为了定位特征的方便我们封装实现了一个可以传入数组实现的SearchSpecialCode定位函数,该定位函数其实还不能算的上简单,本章LyShark...pHdr)return STATUS_INVALID_IMAGE_FORMAT;// 首先寻找代码段PIMAGE_SECTION_HEADER pFirstSection = (PIMAGE_SECTION_HEADER...= 0);if (ppFound == 0)return STATUS_INVALID_PARAMETER;// 获取内核第一个模块的基地址PVOID base = LySharkToolsUtilKernelBase...pHdr)return STATUS_INVALID_IMAGE_FORMAT;// 首先寻找代码段PIMAGE_SECTION_HEADER pFirstSection = (PIMAGE_SECTION_HEADER...,只匹配.text也就是代码段中的数据,当遇到0xcc时则取消继续,否则继续执行枚举,程序输出效果如下所示。

    54040
    领券