首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详解反调试技术

反调试技术,恶意代码用它识别是否被调试,或者让调试器失效。恶意代码编写者意识到分析人员经常使用调试器来观察恶意代码的操作,因此他们使用反调试技术尽可能地延长恶意代码的分析时间。...通常,防止恶意代码使用API进行反调试的最简单的办法是在恶意代码运行期间修改恶意代码,使其不能调用探测调试器的API函数,或者修改这些API函数的返回值,确保恶意代码执行合适的路径。...为了实现反调试技术,恶意代码通过这个位置检查BeingDebugged标志,这个标志标识进程是否正在被调试。...系统使用PEB结构偏移量0x68处的一个未公开位置,来决定如何创建堆结构。如果这个位置的值为0x70,我们就知道进程运行在调试器中。...OllyDbg遵循了这个标准,并且无论NumberOfRvaAndSizes是什么值,OllyDbg都使用它。

2K40
您找到你想要的搜索结果了吗?
是的
没有找到

机器学习算法中分类知识总结!

虽然 91% 的准确率可能乍一看还不错,但如果另一个肿瘤分类器模型总是预测良性,那么这个模型使用我们的样本进行预测也会实现相同的准确率(100 个中有 91 个预测正确)。...当你使用分类不平衡的数据集(比如类别标签和负类别标签的数量之间存在明显差异)时,单单准确率一项并不能反映全面情况。 在下一部分中,我们将介绍两个能够更好地评估分类不平衡问题的指标:精确率和召回率。...四、精确率和召回率 4.1 精确率 精确率指标尝试回答以下问题:在被识别类别的样本中,确实为类别的比例是多少? 精确率的定义如下: ?...4.2 召回率 召回率尝试回答以下问题:在所有类别样本中,被正确识别类别的比例是多少? 从数学上讲,召回率的定义如下: ?...预测偏差曲线 为什么只有模型的某些部分所做的预测如此糟糕?以下是几种可能性: 训练集不能充分表示数据空间的某些子集。 数据集的某些子集比其他子集更混乱。 该模型过于正则化。

56010

物联网的基本素养------软硬结合

而纯软件或纯硬件都并不能说自己是完整的物联网行业。所以软硬结合可以说,是物联网从业者必须具备的一项技能。 ? 我是物联网工程专业,虽然学习过JAVA,也在学python。...在其中我实现了RFID射频卡解锁、指纹识别解锁和人脸识别解锁。...虽然我在刷卡解锁和指纹识别都用常用的STM32开发了,但我发现,想要实现人脸识别解锁,python似乎是最好的办法,而python虽然有很多弊端,我在很多时候也不喜欢他。但确实是软硬结合的一大利器。...物联网的发展趋势表露出越来越具兼容性和支持多种协议的感应器及设备正在被大量需求,同时,软件环境、端到端部署及应用开发也显现自己的一席之地。...如果物联网从业者想要不被这个行业所淘汰,那么就决不能闭门造车,尽早地建立一种软硬结合的思维能力,才能在未来的发展中,有自己的一席之地。

1.1K30

关于this指针

成员函数在类中只有一份,所有该类的对象共同使用,编译器是如何识别并处理的呢?...编译器识别一个类分为三步: 1.识别类的类名 2.识别类的成员变量 3.识别类的成员函数并对成员函数进行修改 修改方式: 成员函数有一个隐藏的this指针,它指向调用该函数的对象...,其类型为:类类型 * const this指针不是对象本身的一部分,不影响该对象的大小 this指针的作用域在类的非静态成员函数的内部,只能在其内部进行使用,其他任何函数都不能,静态成员函数内部无this...在这里我们应该要考虑类似于像scanf和printf这样的函数,这里我们应该明白这两个函数的参数都是可变的,如果参数不固定的话,在被调用函数内就无法知道参数究竟使用了多少个字节,所以为了实现可变参数,我们必须要在被调函数执行之后我们才知道参数究竟用了多少字节...为什么会这样呢?

41410

智能合约语言 Solidity 教程系列12 - 库的使用

这是Solidity教程系列文章第12篇介绍库的使用:库与合约的不同,使用库的姿势。 Solidity 系列完整的文章列表请查看分类-Solidity。...库函数在被调用时,库代码是在发起合约(下文称主调合约:主动发起DELEGATECALL调用的合约)的上下文中执行的,使用this将会指向到主调合约,而且库代码可以访问主调合约的存储(storage)。...不能继承或被继承 不能接收以太币 不能销毁一个库 不会修改状态变量(例如被声明view或pure)库函数只能通过直接调用(如不用DELEGATECALL),是因为其被认为是状态无关的。...// 库函数不需要实例化就可以调用,因为实例就是当前的合约 require(Set.insert(knownValues, value)); } // 在这个合约中...using A for B; 指令仅在当前的作用域有效,且暂时仅仅支持当前的合约这个作用域,后续也非常有可能解除这个限制,允许作用到全局范围。

58520

Python 知识点总结篇(1)

变量 变量类型: 1、数字型 整形:int; 浮点型:float; 布尔型:bool,True和False; 复数型:complex; 2、非数字型 字符串; 列表; 元祖...:常用于Unix系统脚本中的第一行开头使用,用于知名执行这个脚本文件的解释程序; #!.../usr/bin/python3 运算符优先级 Python保留字 数据类型转换 正负无穷 float('inf') #无穷 float('-inf') #负无穷 利用inf乘以...*kwargs; 元祖与字典的拆包 要将一个元祖变量直接传递给args,则在元祖变量前增加一个*; 要将一个字典变量直接传递给kwargs,则在字典变量前增加两个**; 局部和全局作用域 在被调用函数内赋值的变元和变量...局部变量不能在全局作用域内使用; 局部作用域不能使用其他局部作用域内的变量; 全局变量可以在局部作用域中读取; global语句 通过使用global语句,在函数内修改全局变量; eggs = '

62210

23 | 使用PyTorch完成医疗图像识别大项目:优化数据

上一小节修改了我们的评估指标,然而效果并没有什么变化,甚至连指标都不能正常的输出出来。...然而实际上我们的数据是下面这个样子的,大部分都是负样本,样本只有一点点,在我们的数据集里面,阳性和阴性比值为1:400。...可以看出模型的效果不怎么好,但是,这个的优势是我们已经获得了足够多的样本数据,同时在预测的时候能够分出样本和负样本。...如原书中所用的训练结果,由于使用了全部的数据集,同时训练了10个 epoch,获得了0.92的f1 score,在验证集上样本都可以有79.4的准确率,比起前两章的训练结果要好太多了,虽然我们还不能很完美的识别有问题的数据...从准确率来看,完全增强的整体准确率偏低,未增强和使用单一增强策略的整体准确率较高,但是完全增强数据在样本的准确率上有很好的效果,比如说像这个业务,我们就是期望能够准确的发现有问题的结节,哪怕错误的判断了某些安全的结节都可以

71840

.NET对象清理

基于查找到的所有根引用,垃圾回收器就可以遍历每个根引用标识的树形结构,并递归确定每个根引用指向的对象,进而识别出所有可达对象。...它不阻止垃圾回收器对对象的回收,但会维持一个引用,进而可以在被垃圾回收器回收之前可以重用。...例如我们从数据库中查询一个庞大的数据列表向用户展示,如果没有使用弱引用当用户关闭了这个列表,那么垃圾回收器就有很大可能将它回收,那么当用户再次查看这个列表时,程序又需要从数据库查询并加载出来,这种操作成本是很高昂的...Dispose 方法中调用了 Dispose(bool para) 方法,在这个方法里我们可以清理资源并阻止终结器。...其次,我们定义了 Close 方法来调用 Dispose(bool para) 方法,这样终结器就可以调用 Dispose(bool para) 方法来关闭释放资源。

52310

MixCSE:困难样本在句子表示中的使用

对比学习就是我们要学习到一个映射,当句子通过这个映射之后,比如x,我们希望和x相似的样本的之间的分数要大于和x不相似的负样本的分数,当然,这个分数我们可以自定义一个计算方式。...Kim, Yoo, and Lee利用bert的隐含层表示和最后的句嵌入构建样本对。SimCSE 使用不同的dropout mask将相同的句子传递给预训练模型两次,以构建样本对。...目前的一些模型主要关注的是在生成样本对时使用数据增强策略,而在生成负样本对时使用随机采样策略。在计算机视觉中,困难样本对于对比学习是至关重要的,而在无监督对比学习中还没有被探索。...这项工作的关键发展是不断地在训练过程中注入人工的困难负面特征,因为原本的困难负面特征正在被推开,变得“更容易”。 MixCSE的基本介绍? ​...为什么不让混合负样本参与反向传播? 如果参与,计算梯度如下: 我们看到会有一项: 它会使得样本 逐渐远离 。 实验结果?

1.8K20

Spring中的IOC(控制反转),总结和解释易理解

通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递(注入)给它。 两种实现:依赖查找(DL)和依赖注入(DI)。...IOC 和 DI 、DL 的关系: DI(Dependency Injection)是 Spring 使用的方式,容器负责组件的装配。...所谓反转: 有反转就应该有转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是转; 而所谓的反转,其实是反转的控制权,由 Spring 来控制对象的生命周期,那么对象的控制就完全脱离了我们的控制...这个反转是指:我们由对象的控制者变成了 IOC 的被动控制者。 其次,说到 IOC 就会想到 DI 依赖注入(IOC 是通过 DI 来实现的),那么: 谁依赖谁:A 对象 依赖于 IOC 容器。...为什么需要依赖:A 对象需要 IOC 容器提供对象需要的数据、B 对象等外部资源,没有这些资源不能完成业务处理。 谁注入谁:IOC 容器注入 A 对象。

44330

中国顶级AI论文何时超越美国?明年

竞赛的内容,就是比谁的算法能够更好更快的识别双摄像头在不同条件下收集到的图像,比如识别某一张图片是晴天还是恶劣天气。 通常来讲,美国科技巨头肯定希望将优胜者的算法,拿来为公司所用,为企业赚钱。...美国和中国人工智能研究人员的最新数据显示,中国的确走上正轨。 Allen研究所从其Semantic Scholar学术搜索引擎,分析了截至2018年底200多万份AI研究出版物的数据。...尽管论文的质量和影响力与美国尚有一定差距,但这个差距也在不断的减小。按照目前的趋势来看,中美两国在人工智能出版物方面的差距,将在2020年之前消除。这个情况自然早就引起美国当局的注意。 但也有人怀疑。...打脸的是,在被引用TOP 10论文方面,中国的份额出现了显著的上升,美国反而在缓慢的下降。 被引用次数并不能完全反映论文的质量和影响,所以Allen研究所计划采取更多维度的评判标准。

34220

《Scikit-Learn与TensorFlow机器学习实用指南》 第3章 分类

这个“数字 5 检测器”就是一个二分类器,能够识别两类别,“是 5”和“非 5”。...这个图片实际就是数字 5,当阈值等于 0 的时候,分类器可以探测到这是一个 5,当阈值提高到 20000 的时候,分类器将不能探测到这是数字 5。 那么,你应该如何使用哪个阈值呢?...一个笨拙的规则是,当例很少,或者当你关注假例多于假反例的时候,优先使用 PR 曲线。其他情况使用 ROC 曲线。举例子,回顾前面的 ROC 曲线和 ROC AUC 数值,你或许认为这个分类器很棒。...一个简单的解决方法是使用例的概率当作样例的分数。...很难明白为什么分类器会分错。原因是我们使用的简单的SGDClassifier,这是一个线性模型。

1.2K11

浮点数比较的精度问题

所以,判断两个浮点数变量是否相等,不能简单地通过 "==" 运算符实现,浮点数进行比较时,一般比较他们之间的差值在一定范围之内。...bool feq(float a,float b){ return fabs(a,b)<FLT_EPSILON; } FLT_EPSILON 数值是 1.192092896e-07F,最小的 float...其实道理很简单,十进制系统中能不能准确表示出 2/3 呢?同样二进制系统也无法准确表示 1/10 。这也就解释了为什么浮点型精度丢失问题。...将一个 float 型转化为内存存储格式的步骤为: 先将这个实数的绝对值化为二进制格式,注意实数的整数部分和小数部分的二进制方法在上面已经探讨过了。...如果实数是的,则在第 31 位放入“0”,否则放入“1”。 如果 是左移得到的,说明指数是的,第 30 位放入“1”。如果 n 是右移得到的或 n=0,则第 30 位放入“0”。

1.5K20

VC下提前注入进程的一些方法1——远线程不带参数

根据需要,可以考虑在远线程执行完毕后,再使用远线程把被注入进程加载的DLL卸载掉。         首先说LoadLibrary ,这个函数只有一个参数,需要传递Load的DLL路径。...我们使用VirtualAllocEx在被注入进程中申请一块内存,注意这块内存是PAGE_READWRITE,因为我们要读写(不用执行)这块内存。...远线程是在被注入进程中执行的,那么远线程Load的DLL文件的文件句柄应该在被注入进程的地址空间中,我们在注入进程中获得它也不能操作啊?...其实这也不是问题,我们在我们进程中不对这个值做什么操作,我们只是获取到它,然后再把它塞回到被注入进程中,让FreeLibrary远线程在被注入进程中去操作它。...是的,就是使用没有名字的非全局事件。于是这儿又遇到一个问题:如何将这个句柄给远线程呢?现在抛出这个问题,下节我们会讲到使用ShellCode加载我们的DLL,调用DLL中的导出函数并传入参数。

84920

Python知识点总结篇(一)

,True和False; 复数型:complex; 2、非数字型 字符串; 列表; 元祖; 字典; 不可变类型:内存中数据不允许被修改; 数字类型int、bool、float、complex,long...:常用于Unix系统脚本中的第一行开头使用,用于知名执行这个脚本文件的解释程序; #! /usr/bin/python3 运算符优先级 ? Python保留字 ? 数据类型转换 ?...正负无穷 float('inf') #无穷 float('-inf') #负无穷 利用inf乘以0得到一个not-a-number(NaN),NaN与inf的区别:inf数的significant...*kwargs; 元祖与字典的拆包 要将一个元祖变量直接传递给args,则在元祖变量前增加一个*; 要将一个字典变量直接传递给kwargs,则在字典变量前增加两个**; 局部和全局作用域 在被调用函数内赋值的变元和变量...局部变量不能在全局作用域内使用; 局部作用域不能使用其他局部作用域内的变量; 全局变量可以在局部作用域中读取; global语句 通过使用global语句,在函数内修改全局变量; eggs = '

55820

学习|C#线程中AutoResetEvent的使用

——《微卡智享》 本文长度为3106字,预计阅读8分钟 前言 前一篇《学习|C#的EventHandler的委托使用》介绍了EventHandler的简单使用,本篇主要介绍线程中的AutoResetEvent...其实从上面的读卡器操作流程来看,也能看出来为什么我们上一篇文章要讲EventHandler了,这样就可以把读卡的逻辑和读到卡数据后的业务逻辑进行分开了。话不多说,篇开始。...上面就是AutoResetEvent的主要方法,从上面的主要方法中我们可以看到,实现读卡器每100耗秒进行检测,原来通过线程是sleep进行处理,现在可以使用WaitOne的方式,并且通过这个方法,我们可以在外部实现读卡器重连的调用...在车牌识别时发现是会员,但是没有读到卡信息,有可能读卡器出现异常,也要进行自动重连。...实际项目中对读卡器的操作没法贴上来,这里我们就接着一个DEMO,模拟一下这个场景。 代码演示 ? 微卡智享 接着我们的threaddemo,在CTest的类中我们开始改造。 ?

1.1K20

《Scikit-Learn与TensorFlow机器学习实用指南》 第3章 分类

这个“数字 5 检测器”就是一个二分类器,能够识别两类别,“是 5”和“非 5”。...这个图片实际就是数字 5,当阈值等于 0 的时候,分类器可以探测到这是一个 5,当阈值提高到 20000 的时候,分类器将不能探测到这是数字 5。 那么,你应该如何使用哪个阈值呢?...一个笨拙的规则是,优先使用 PR 曲线当例很少,或者当你关注假例多于假反例的时候。其他情况使用 ROC 曲线。举例子,回顾前面的 ROC 曲线和 ROC AUC 数值,你或许人为这个分类器很棒。...一个简单的解决方法是使用例的概率当作样例的分数。...很难明白为什么分类器会分错。原因是我们使用的简单的SGDClassifier,这是一个线性模型。

1.7K70

不只是模仿:研究人员让机器人理解和学习人类的双手动作

这个基本的动作中发生了很多事情,现在要求机器人自动完成它是不可能的。但是那个机器人仍然可以大致了解为什么在这种情况下要进行这样的操作,并尽其所能去完成它。...你可能会认为,当一个人远程控制一个机器人时,它只会准确地反映出这个人的动作。...重新解释人类动作 研究人员创建的系统会识别上述四种行为之一何时发生,并采取措施确保它们成功实现。这意味着,例如,当一起拿起一个水桶时,要意识到另一只手对每只手臂施加的压力。...当然,这仍然是由人类或多或少完成的,但人类的行为正在被增强并重新解释,而不仅仅是简单的机械复制。 机器人自主完成这些任务还有很长的路要走,但这样的研究奠定了一些基础。...华为任非,近20年400多段高清音频演讲 | AI根据语音音频生成实时面部动画 专治BUG 据说在看的没有BUG

62840
领券