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

    用单步异常检测OllyDbg的巧妙方法

    SEH大概算得上是WINDOWS下公开的秘密了,什么?您还不知道?没关系,下面我来简单地介绍一下。SEH即结构化异常处理(Structured Exception Handling),简单地说就是当程序出现错误时,系统把当前的一些信息压入堆栈,然后转入我们设置好的异常处理程序中执行,在异常处理程序中我们可以终止程序或者修复异常后继续执行。异常处理处理分两种,顶层异常处理和线程异常处理,下面我们要用到的是线程异常处理。具体做法是,每个线程的FS:[0]处都是一个指向包含异常处理程序的结构的指针,这个结构又可以指向下一个结构,从而形成一个异常处理程序链。当发生异常时,系统就沿着这条链执行下去,直到异常被处理为止。我们可以使FS:[0]指向我们自己写的异常处理程序,从而自己处理异常。这里只是关于异常处理的简单介绍,具体内容请参考看雪学院的《加密与解密》及相关的windows编程书籍。 我们都知道用调试器(下面的介绍都以当前流行的调试器OllyDbg为例)可以设置断点,那么当设置断点时调试器究竟是怎样工作的呢?这要分几种情况了,一种是代码断点,即Cracker在某行代码上下断点,这时调试器自动把这行代码的首字节改为CC(即INT3中断,这个修改在OD中不会显示)这样每当程序运行到这里都会产生中断,而调试器可以接管这个中断,从而实现对程序的控制;另一种是内存断点,即当程序对某处内存有操作(读或写)时产生中断,这是直接利用CPU的调试寄存器DRx来完成的;还有一种不太像中断的“中断”,即单步中断,也就是说当你在调试器中选择“步过”某条指令时,程序自动在下一条语句停下来,这其实也属于一种中断,而且可以说是最常用的一种形式了,当我们需要对某段语句详细分析,想找出程序的执行流程和注册算法时必须要进行这一步。是80386以上的INTEL CPU中EFLAGS寄存器,其中的TF标志位表示单步中断。当TF为1时,CPU执行完一条指令后会产生单步异常,进入异常处理程序后TF自动置0。调试器通过处理这个单步异常实现对程序的中断控制。持续地把TF置1,程序就可以每执行一句中断一次,从而实现调试器的单步跟踪功能。 讲到这里,不知聪明的您看出什么问题没有:如果我们的程序本身就含有对单步异常的处理程序会怎么样呢?呵呵,据笔者的实验是,OD会不理睬我们程序自己的单步异常处理程序而自顾自地把异常处理接管了。这其实就给了我们一种很巧妙的方法,我们可以自己把TF置1,然后把注册算法中十分关键的运算放在我们程序自己的单步异常处理程序中。这样当程序在正常条件下执行时,一旦产生单步异常就会转到我们自己写好的异常处理中继续进行而不会受到影响,如果程序被调试,而Cracker选择了按F8步过这段程序,那么这时产生的单步异常会被调试器忽略,这样那些关键的代码就得不到执行,从而产生令人十分迷惑的结果。 好了,说了这么多,下面看一个实际的例子:(MASM32 8.2下编译通过)

    03

    Nat. Rev. Drug. Discov. | 氘在药物发现中的应用:进展、机遇与挑战

    今天为大家介绍的是来自Tracey Pirali的一篇综述论文。氘代替氢原子的替代反应将在分子中增加一个中子。尽管这是一个微小的变化,但这种结构修饰被称为氘化,可能会改善药物的药代动力学和/或毒性特性,从而与非氘化的对应物相比,在疗效和安全性方面可能带来改进。最初主要通过“氘开关”方法开发已上市药物的氘代物,如氘替贝嗪,该药物于2017年成为首个获得FDA批准的氘代药物。在过去几年中,研究重点已转向将氘化应用于新型药物发现,2022年FDA批准了创新的全新氘化药物德克拉伐替尼。在综述中,作者突出了药物发现和开发中氘化领域的关键里程碑,强调了最近和具有指导意义的药物化学计划,并讨论了药物开发者面临的机遇和障碍,以及尚待解决的问题。

    02

    三大基础公共数据库介绍

    美国的国家生物技术信息中心(National Center forBiotechnology Information,NCBI,https://www.ncbi.nlm.nih.gov/)是1988年美国国家健康研究所(National Institutesof Health,NIH)和国家医学图书馆(United StatesNational Library of Medicine,NLM)联合发起成立的分子生物学、生物化学、遗传学知识储备和文献整理平台,并逐步演变为大规模生物医药数据存储、分类与管理,生物分子序列、结构与功能分析,分子生物软件开发、发布与维护,生物医学文献收集与整理,全球范围数据提交与专家注释于一体的世界生物医学信息与技术资源数据库。NCBI采用著名的Entrez搜索和信息检索系统,可以进行在线资源检索,同时构建FTP数据资源下载平台(https://www.ncbi.nlm.nih.gov/guide/all/#downloads),方便用户批量下载数据。

    02

    斯坦福Shenoy团队:由循环神经网络实现的大脑控制摘要

    到目前为止,脑机接口主要集中于控制单个载体,例如单个计算机光标或机械臂。恢复多肌运动可以为瘫痪患者解锁更大的功能(例如,双手运动)。然而,解码多个病媒的同时运动可能具有挑战性,因为我们最近发现一个组合神经解码连接了所有肢体的运动,并且在双病媒运动中发生非线性变化。在这里,我们演示了通过神经网络(NN)解码器对两个游标进行高质量的双手控制的可行性。通过模拟,我们发现神经网络利用神经“侧向性”维度来区分左右的运动,因为神经对双手的调整变得越来越相关。在训练循环神经网络(RNNs)时,我们开发了一种方法,通过在时间上扩张/压缩并重新排序来改变训练数据的时间结构,我们证明这有助于RNN成功地推广到在线设置。通过这种方法,我们证明了一个瘫痪患者可以同时控制两个计算机光标。我们的研究结果表明,神经网络解码器可能有利于多载体解码,只要它们被设计为转移到在线设置。

    01
    领券