在本文中,我们将解释两个简单的命令行小技巧,它可以帮你只列出所有的今天的文件。 Linux 用户在命令行上遇到的常见问题之一是定位具有特定名称的文件,如果你知道确定的文件名则可能会容易得多。...不过,假设你忘记了白天早些时候创建的文件的名称(在你包含了数百个文件的 home 文件夹中),但现在你有急用。 下面用不同的方式只列出所有你今天创建或修改的文件(直接或间接)。...1、 使用 ls 命令,只列出你的 home 文件夹中今天的文件。...- 显示指定 FORMAT 的时间 +%D - 以 %m/%d/%y (月/日/年)格式显示或使用日期 此外,你使用可以 -X 标志来按字母顺序对结果排序: # ls -alX --time-style...-maxdepth 级别用于指定在搜索操作的起点下(在这个情况下为当前目录)的搜索层级(子目录层级数)。 -newerXY,用于所寻找的文件的时间戳 X 比参照文件的时间戳 Y 更新一些的文件。
有个简单又有用的命令行工具叫chattr(Change Attribute 的缩写),在类 Unix 等发行版中,能够用来防止文件和目录被意外的删除或修改。...在这篇简短的教程中,我们一起来看看怎么在实际应用中使用 chattr 命令,来防止文件和目录被意外删除。...Linux中防止文件和目录被意外删除和修改 默认,chattr 命令在大多数现代 Linux 操作系统中是可用的。...a – 只能向文件中添加数据 A – 不更新文件或目录的最后访问时间 c – 将文件或目录压缩后存放 C – 不适用写入时复制机制(CoW) d – 设定文件不能成为 dump 程序的备份目标 D –...同步目录更新 e – extend 格式存储 i – 文件或目录不可改变 j – 设定此参数使得当通过 mount 参数:data=ordered 或者 data=writeback 挂载的文件系统,文件在写入时会先被记录在日志中
不过,Python到目前为止缺少一种从Python应用程序里面以编程方式触发调试器的标准化方法。 Python 3.7添加了breakpoint(),这个内置函数使得函数被调用时,让执行切换到调试器。...相应的调试器不一定是Python自己的pdb,可以是之前被设为首选调试器的任何调试器。以前,调试器不得不手动设置,然后调用,因而使代码更冗长。...而有了breakpoint(),只需一个命令即可调用调试器,并且让设置调试器和调用调试器泾渭分明。 其他新的Python 3.7功能 Python 3.7有另外的众多变更。...Python importlib资源 importlib模块现在可用来读取“资源”,即随Python应用程序一并交付的二进制工件,比如数据文件。...这样一来,开发人员可以通过importlib的抽象来访问那些文件,所以它们存储在系统上某个地方的.zip文件中还是存储在目录中并不重要。
观察状态的一种简单方法是使用调试器捕获函数参数。对于 Go 应用程序,我们通常使用 Delve 或 gdb。 Delve 和 gdb 可以很好地用于开发环境中的调试,但它们不经常用于生产环境中。...这些保证使 eBPF 能够用于性能关键的工作负载,如包过滤、网络监视等。 从功能上讲,eBPF 允许你在某些事件触发下运行受限制的C代码(比如:定时器、网络事件或函数调用)。...让我们看看如何在二进制文件中跟踪符号。...此信息是可以用的,即使在优化的二进制文件中也是可以读取使用,除非已经剥离了调试数据(如使用 strip 命令)。...如何使用调试陷阱指令调用 BPF 程序的详细信息 这种 BPF 函数相对简单;C 代码如下所示。我们注册这个函数,以便每次 main.computee 被调用时它都会被调用。
其中91%的C&C服务器在黑客使用后关闭或转移,以防止被追踪。 ?...▲ 图 4‑17 勒索病毒行为 这些行为往往依赖操作系统的函数调用,并读取、修改、操作系统的相关资源对象,如文件、进程、网络、注册表。...▲ 图 4‑18 勒索病毒行为调用过程 以下是样本同源性分析的具体思路: 通过沙箱可以提取所有样本的具体恶意行为,而其中一些样本是具有相应的规律的,尤其是出自相同的黑客组织,这些同源的恶意代码在具体的行为操作上有着相同或相似的片段...,如函数的调用、自定义的加解密函数等,其实现的功能或相同或相近,如在Duqu和stuxnet这两类被认为是共同对伊朗核电站基础设施发动攻击的恶意代码中,他们的关键功能代码:如dll注入、RPC服务,有着高度的一致性...然后,将加密公钥写入到注册表中,遍历本地所有磁盘中的Office文档、图片等文件,对这些文件进行格式篡改和加密;加密完成后,还会在桌面等明显位置生成勒索提示文件,指导用户去缴纳赎金; 该类型病毒可以导致重要文件无法读取
这通常有三种最常见的情景: 1、 打开调试器,文件——打开可执行文件——开始调试 2、 打开调试器,附加到一个正在运行的进程 3、 程序运行崩溃,选择一个调试器调试,其实这和2属于同一类...同时为了调试器和被调试进程对这个链表的操作进行互斥,设置了一个Mutex。 消息链表中链接的节点是DEBUG_EVENT结构体,需要指出的是,调试器在Ring3调用kernel32!...提取之前将判断EventsPresent是否为有信号状态,前面说了,一旦被调试进程向链表中插入一个新的消息后,将会把这个事件置为有信号状态。当获取到一个新的调试消息后nt!...对于一个int 3断点异常消息而言,调试器收到这个消息以后,判断如果这个断点是自己设置的(比如F9(VC++)或F2(OD)或bp(WinDbg)),就将原来写在这个地方的指令改写回去。...然后把DEBUG_OBJECT中的EventsPresent事件置为有信号状态,以此来通知调试器:现在有新的调试消息产生,快来读取吧。
本文是描述我们如何在生产中使用 eBPF 调试应用程序的系列文章中的第一篇,无需重新编译/重新部署,这篇文章介绍了如何使用 gobpf[1] 和uprobes 为 Go 应用程序建立一个函数参数跟踪器,...介绍 通常在调试应用的时候,我们对捕获程序的状态比较感兴趣,这可以让我们检查应用程序正在做什么,并确定我们代码中的错误所在,观察状态的一个简单方法是使用调试器来捕获函数参数,对于 Go 应用程序,我们经常使用的是...这些严格的验证保证了机器代码不会故意或意外地危害 Linux 内核,并且保证了 BPF 探针每次被触发时都能在一定数量的指令中执行,这些保证使得 eBPF 能够用于性能关键型的工作负载,如数据包过滤、网络监控等...在功能上,eBPF 允许你在一些事件(如定时器、网络事件或函数调用)发生时运行受限的 C 代码,当触发一个函数调用时,我们把这些函数称为 probe,它们可以用来运行在内核内的函数调用上(kprobes...由于 uprobes 是通过插入调试陷阱指令来工作的,所以我们需要得到函数所在的地址,Linux 上的 Go 二进制文件使用 ELF 来存储调试信息,即使在优化的二进制文件中,这些信息也是可用的,除非调试数据被剥离了
与传统的调试器如Ollydbg相比,x64dbg调试器的出现填补了Ollydbg等传统调试器的不足,为反汇编调试工作提供了更高效、更可靠的解决方案。...(1)反汇编窗口反汇编窗口是x64dbg的一个主要功能之一,它可以显示被调试程序的汇编指令,并允许用户查看和修改这些指令(需要注意的是当一个进程被加载默认EIP会停在系统模块中),其主要的作用包括;显示程序的汇编指令...这种断点类型适用于在特定内存位置上调试程序,例如检测某个变量的值何时被更改。在x64dbg中,硬件读取断点可以通过在指定内存地址上设置“r”来实现。...在x64dbg中,硬件写入断点可以通过在指定内存地址上设置“w”来实现。图片(3)内存断点当程序在特定内存地址处读取、写入或执行时,暂停程序执行。...在x64dbg中,内存断点可以根据不同的操作类型进行分类,内存断点被分为内存访问,内存执行,内存写入,内存读取等,他们之间的应用各不相同;内存访问断点(Access breakpoint):当程序试图访问特定内存地址时触发
与传统的调试器如Ollydbg相比,x64dbg调试器的出现填补了Ollydbg等传统调试器的不足,为反汇编调试工作提供了更高效、更可靠的解决方案。...(1)反汇编窗口 反汇编窗口是x64dbg的一个主要功能之一,它可以显示被调试程序的汇编指令,并允许用户查看和修改这些指令(需要注意的是当一个进程被加载默认EIP会停在系统模块中),其主要的作用包括;...这种断点类型适用于在特定内存位置上调试程序,例如检测某个变量的值何时被更改。在x64dbg中,硬件读取断点可以通过在指定内存地址上设置“r”来实现。...在x64dbg中,硬件写入断点可以通过在指定内存地址上设置“w”来实现。 (3)内存断点 当程序在特定内存地址处读取、写入或执行时,暂停程序执行。...在x64dbg中,内存断点可以根据不同的操作类型进行分类,内存断点被分为内存访问,内存执行,内存写入,内存读取等,他们之间的应用各不相同; 内存访问断点(Access breakpoint):当程序试图访问特定内存地址时触发
4.1.2 读取或设置寄存器参数寄存器是计算机中的一种高速存储设备,位于CPU内部。它们由一些元器件构成,通常是用于存储和操作CPU指令和数据的硬件单元。...x64dbg中的断点分为以下几类:图片软件断点(BP):软件断点是一种在程序执行期间暂停程序并引起中断的代码指令,可用于修复软件中的一些缺陷或调试程序。...用户可以通过向上和向下翻转堆栈栈帧查看程序函数调用的层级,便于查找程序执行过程中的错误和问题。...下面是对LyScript插件内存读写功能的简要概述:内存读取:通过LyScript插件,开发人员可以通过代码读取已经加载的程序进程的内存中特定地址的值。...首先介绍了LyScript插件的基本功能和使用方法,如通过不同的命令进行反汇编、查看汇编代码、设置断点等。并结合具体案例,演示了如何在LyScript中使用不同的命令进行程序反汇编和调试。
4.1.2 读取或设置寄存器参数 寄存器是计算机中的一种高速存储设备,位于CPU内部。它们由一些元器件构成,通常是用于存储和操作CPU指令和数据的硬件单元。...x64dbg中的断点分为以下几类: 软件断点(BP):软件断点是一种在程序执行期间暂停程序并引起中断的代码指令,可用于修复软件中的一些缺陷或调试程序。...用户可以通过向上和向下翻转堆栈栈帧查看程序函数调用的层级,便于查找程序执行过程中的错误和问题。...下面是对LyScript插件内存读写功能的简要概述: 内存读取:通过LyScript插件,开发人员可以通过代码读取已经加载的程序进程的内存中特定地址的值。...首先介绍了LyScript插件的基本功能和使用方法,如通过不同的命令进行反汇编、查看汇编代码、设置断点等。并结合具体案例,演示了如何在LyScript中使用不同的命令进行程序反汇编和调试。
观察状态的一种简单方法是使用调试器来捕获函数的参数。对于 Go 程序来说,我们经常使用 Delve 或者 GDB。 在开发环境中,Delve 和 GDB 工作得很好,但是在生产环境中并不经常使用它们。...这些严格的验证确保了机器码不会有意或无意地破坏 Linux 内核,并且 BPF 探针每次被触发时,都只会执行有限的指令。这些保证使 eBPF 可以用于性能关键的工作负载,例如数据包过滤,网络监控等。...从功能上讲,eBPF 允许你在某些事件(例如定时器,网络事件或函数调用)触发时运行受限的 C 代码。...当在函数调用上触发时,我们称这些函数为探针,它们既可以用于内核里的函数调用(kprobe) 也可以用于用户态程序中的函数调用(uprobe)。本文重点介绍使用 uprobe 来动态跟踪函数参数。...我们将编写一个称为跟踪程序的二进制文件,它负责注册 BPF 代码并读取 BPF 代码的结果。
这是本系列文章的第一篇, 讲述了我们如何在生产环境中使用 eBPF 调试应用程序而无需重新编译/重新部署....这些严格的验证确保了机器码不会有意或无意地破坏 Linux 内核, 并且 BPF 探针每次被触发时, 都只会执行有限的指令....当在函数调用上触发时, 我们称这些函数为探针, 它们既可以用于内核里的函数调用(kprobe) 也可以用于用户态程序中的函数调用(uprobe)....我们将编写一个称为跟踪程序的二进制文件, 它负责注册 BPF 代码并读取 BPF 代码的结果....下图显示了 Linux 内核如何使用uprobe 修改二进制文件. 软中断指令(int3)作为第一条指令被插入 main.computeE 中.
在“编辑并继续”之后检索正确的函数版本或者反射函数信息,调试器需要知道EnC(edit-and-continue?)和元数据信息。调试器必须能够区分应用程序域和程序集。...调试器可以在进程运行时也可以工作在进行未运行时工作,In-process中的调试器需要调试对象程序的实时数据对象,这种情况下,运行时已经加载,目标程序正在运行,在调试对象中有一个辅助线程在运行一些可以获取当前调试所需信息的代码...为了检索对象,DAC可以读取其内存,获取mscordacwks中VM代码的输入。 然后,它可以在宿主机中运行相应的函数来计算有关托管结构所需的信息,并将最终结果返回给调试器。 请注意。...如果调试器需要显示托管应用程序中某个函数的堆栈起始地址,需假定调试器已经获取从DBI中获取了ICorDebugFunction接口的示例,这个示例首先调用了DBI API ICorDebugFunction...还必须确保任何其他更改(如bug修复和代码清理)必须符合dac规则。否则,更改会破坏调试器和SOS。如果您只是修改现有的代码 (而不是实现一个新的功能), 通常。
IMAGE_FILE_HEADER 中的文件属性字段中 普通的EXE文件这个字段值一般是010fh,DLL文件这个字段的值是0210h 注意:当磁盘文件一旦被装入内存中,磁盘上的数据结构布局和内存中的数据结构布局是一致的...TLS回调,在进入PE头指定的入口之前运行恶意程序 IDA中按Ctrl+E组合键看到二进制的入口点,该组合键的作用是显示应用程序所有的入口点 使用异常 插入中断 利用调试器漏洞,OllydDbg1.1...(5) 创建服务,服务的执行路径为病毒文件,大多用来作为自启动; (6) 病毒文件被设置为隐藏属性; (7) 设置键盘钩子或鼠标钩子,监视正常用户的操作; (8) 替换系统文件; (9) 感染可执行文件...(7)用调试器动态调试,用IDA静态分析,编写辅助脚本进行分析 (8)对产生的日志和流量进行分析,取证,调研 (9)提取特征码,和已有的样本库进行比对 (10)文档化 (11)备份相关文件...DLL被加载后才能执行 SSDT hook:ntoskrnl.exe模块的地址在一定范围内,一旦不在,说明SSDT被hook了 是否对C++的程序有所了解 虚函数中决定调用哪个函数是在运行时进行的 C+
开发者可以通过命令行或其他方式使用Java应用程序启动器来运行Java程序。 需要注意的是,JRE并不包含开发工具(如编译器和调试器),它只是一个运行环境,用于执行已经编译好的Java程序。...当运行一个Java程序时,JVM需要加载所需的类文件,这些文件通常是以.class为扩展名的文件或从.jar文件中提取的类。...栈的主要作用是保存方法执行过程中的局部变量、操作数栈、动态链接和方法出口等信息。 当一个方法被调用时,JVM会为其创建一个新的栈帧并压入栈中;当方法执行完毕后,对应的栈帧会被弹出栈并释放内存。...类加载器的作用是将类的字节码文件加载到JVM中,并将其转换为可以被JVM执行的结构。 字节码验证:加载过程中,JVM会验证字节码文件的信息是否符合Java虚拟机规范,确保被加载的类信息的正确性。...javac HelloWorld.java jar:用于创建、查看或提取JAR文件。
对,就是文件的意思,file是只能用来定义类型的访问修饰符,不能定义类型中的类成员,即使嵌套类也不可以。file是用来定义使用范围最小的类型访问修饰符,只限于在当前文件中,其他类型的成员内访问。...在这个版本中,.NET 7已经被添加到目标框架中,并且Swagger用户界面已经被更新。...如何在Windows环境下检查你是否有对一个文件夹的写入权限。...Studio预览版中的调试器文本可视化器的介绍。.../ 解释了如何从作为处理程序传递给Minimal API端点的Delegate中提取元数据,以及如何创建RequestDelegate。
例如,某些硬件中断(如系统时钟)优先级高于软件中断。优先级的设定由硬件电路(如中断控制器)和操作系统共同决定。3. INT n 的实际应用(1) 系统调用在操作系统中,INT n 常用于实现系统调用。...例如,在 MS-DOS 操作系统中,INT 0x21 是一个关键的中断,用于提供文件操作、设备管理、内存分配等服务。...(2) 错误处理现代操作系统中,当出现异常情况时(如除零错误或非法指令),CPU 会通过中断机制调用相应的异常处理程序。例如,INT 0x00 处理除零错误,INT 0x0D 处理非法指令。...(3) 调试功能调试器(如 GDB)通常使用中断指令(例如 INT 3)实现断点设置。当执行到断点时,INT 3 会触发调试器接管控制权。4....在现代操作系统(如 Windows 和 Linux)中,系统调用通常通过快速系统调用接口(如 SYSCALL 或 SYSENTER 指令)实现,而不是传统的中断机制。
对于用户希望看到的消息,如文件未找到或输入无效,请输入一个号码,您应该使用print()调用。禁用日志消息后,您不希望剥夺用户的有用信息。...这样,您可以很容易地找到它来注释掉或取消注释调用,以根据需要启用或禁用日志消息。 记录到一个文件 您可以将日志消息写入文本文件,而不是显示在屏幕上。...您可以在任何文本编辑器中打开此文本文件,如记事本或“文本编辑”。 Mu 的调试器 调试器是 Mu 编辑器、IDLE 和其他编辑器软件的一个特性,它允许你一次执行一行程序。...在图 11-1 中,调试器在运行第一行代码之前暂停了程序的执行。您可以在文件编辑器中看到突出显示的这一行。...单击“继续”后,调试器将于何时停止? 什么是断点? 在 Mu 中如何在一行代码上设置断点? 实践项目 为了练习,编写一个程序来完成以下任务。
领取专属 10元无门槛券
手把手带您无忧上云