愚公搬代码
《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。
《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
展开
-
【愚公系列】2023年06月 移动安全之安卓逆向(IDA动态分析之函数参数)
在IDA动态分析中,函数参数指的是函数的输入参数,它们是传递给函数的值。根据函数参数的类型和值,可以推断函数的功能以及如何调用它。IDA动态分析中,可以使用以下方法查看函数参数:在调试器中查看寄存器值。函数参数通常存储在寄存器中,可以使用IDA调试器中的“寄存器”窗口查看当前寄存器中的值,并确定哪些寄存器存储了函数参数。在堆栈中查看函数参数。函数参数通常存储在堆栈中,可以使用IDA调试器中的“堆栈”窗口查看当前堆栈帧中的值,并确定哪些堆栈变量存储了函数参数。原创 2023-06-12 16:12:00 · 4442 阅读 · 9 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(IDA动态分析)
IDA(Interactive Disassembler)是一款强大的反汇编工具,可以将可执行文件、动态链接库和操作系统内核等二进制程序转换成汇编代码进行分析和研究。IDA可以对汇编代码进行反汇编、反编译、动态调试、数据流分析和交叉引用分析等高级功能,可以帮助安全研究人员、逆向分析师、软件开发人员等进行二进制程序分析和逆向工程。IDA的主要功能包括:反汇编:将二进制代码转换成汇编代码,方便代码阅读和理解。反编译:将二进制代码转换成高级语言代码,方便程序理解和修改。原创 2023-06-12 10:01:56 · 4430 阅读 · 9 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(IDA静态分析)
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。原创 2023-06-11 23:55:08 · 4461 阅读 · 2 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(JNI动态注册)
JNI动态注册是一种将本地方法动态绑定到Java层的机制。通过JNI动态注册,开发人员可以将本地方法直接绑定到Java层,而无需在C/C++代码中使用Java Native Interface (JNI)中的静态方法定义。此外,动态注册可以在运行时动态加载本地库,并将本地方法绑定到Java层,从而提供更灵活和高效的开发方式。定义加减乘除的方法,具体实现在so层// 定义native的加减乘除方法,具体的实现见so层。原创 2023-06-10 17:12:50 · 4025 阅读 · 3 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(JNI静态注册)
JNI(Java Native Interface)是Java语言提供的一种用于与其他编程语言进行交互的机制,可以在Java程序中调用C、C++等其他语言编写的函数或库。在JNI中,静态注册是一种将本地方法(Native Method)与Java类的方法进行绑定的方式。静态注册需要在Java代码中定义本地方法,并使用native关键字声明该方法是本地方法。然后,在C或C++中实现该本地方法的代码,并将其与Java类的方法进行绑定。原创 2023-06-10 15:22:46 · 4069 阅读 · 4 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(JNI接口的基本介绍)
JNI(Java Native Interface)是一个Java平台的标准编程接口,允许Java代码使用本地代码和C/C++库。在Android平台上,JNI接口允许应用程序使用本地代码编写的库或组件,来实现更高效、更快速的操作。通过JNI接口,Android应用程序可以调用C/C++代码,并且可以使用本地C/C++库中的函数和数据结构,同时还可以访问设备底层硬件功能。使用JNI接口需要编写C/C++代码,然后将其编译为本地库并在Android应用中使用。原创 2023-06-10 14:47:32 · 4088 阅读 · 1 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(插桩及栈分析)
安卓逆向插桩是指在应用程序代码中插入自定义的代码,以便在程序运行时动态地获取应用程序的信息或修改应用程序的行为。插桩可以用于应用程序的逆向工程和安全分析,例如检测应用程序的漏洞和隐藏功能,破解加密算法,或者改变应用程序的行为。插桩技术广泛应用于安卓逆向工程、移动应用安全测试、应用程序性能优化等领域。栈分析是指对应用程序的栈空间(stack memory)进行分析,以了解程序的运行状态、函数调用关系和数据流。栈是应用程序运行时使用的一种内存区域,用于存储局部变量、函数参数和返回值等数据。原创 2023-06-10 10:54:01 · 4298 阅读 · 3 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(DEX文件格式)
DEX文件格式是Android操作系统中的一种二进制文件格式,用于存储编译后的Java字节码和相关元数据。DEX文件是为了解决在Android系统中运行Java应用程序的效率问题而产生的,它采用了一种优化的方法来减小二进制代码的大小和内存占用。在Android系统中,所有的应用程序都被编译成DEX格式,然后通过Dalvik虚拟机进行解释执行。DEX文件格式是Android应用程序的核心组成部分,它的优化和压缩对于应用程序的性能和响应速度有重要影响。原创 2023-06-18 00:53:14 · 4439 阅读 · 5 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(Dalvik虚拟机)
虚拟机是指在计算机中运行的软件程序,用于在运行时模拟一台计算机(也称为“虚拟机”),并在其中执行应用程序和操作系统。虚拟机可以分为以下几种类型:硬件虚拟机:它模拟硬件资源,例如CPU、内存、磁盘、网络接口等,并在其上运行操作系统和应用程序。其主要作用是提供一个独立的、安全的软件环境,允许多个操作系统和应用程序在同一台物理计算机上同时运行,从而提高硬件资源的使用效率。常见的硬件虚拟化技术有VMware、VirtualBox、KVM等。原创 2023-06-10 10:18:17 · 4255 阅读 · 21 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(相关工具汇总)
安卓开发和逆向的工具包括但不限于以下几种:Android Studio:一款官方推出的集成开发环境(IDE),用于安卓应用程序的开发和调试。Eclipse:另一款常用的开发工具,可以支持安卓应用程序的开发和调试。JD-GUI: 一款Java反编译器,可将安卓应用程序的.dex文件反编译为Java源代码。Apktool:可以将已安装的安卓应用程序(APK)反编译为易于阅读和修改的SMALI代码。原创 2023-06-09 16:35:39 · 4272 阅读 · 6 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(文件结构和环境配置)
Android是由Google开发的一种移动操作系统,被广泛应用于智能手机、平板电脑和其他移动设备中。Android基于Linux操作系统内核,提供了丰富的应用程序框架和开发平台,开发者可以使用Java等编程语言创建各种类型的应用程序。Android系统的核心功能包括:调用电话、发送短信、浏览网页、播放音视频、拍照、录像、获取位置信息等。Android系统的开放性和自由度非常高,开发者可以自由地进行开发和定制。原创 2023-06-09 15:45:25 · 4230 阅读 · 8 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(ELF文件格式详解)
ARM平台下的反汇编可以使用一些工具,如objdump、IDA Pro等。其中,objdump是一个常用的命令行工具,可以用于反汇编ELF格式的二进制文件,提供在命令行中查看程序反汇编代码的功能。打开IDA Pro软件,并将目标二进制文件导入到IDA Pro中。点击“反汇编”按钮,进行反汇编操作。在反汇编窗口中,可以查看程序的汇编代码,在这里还可以对代码进行修改和调试。总的来说,反汇编是逆向工程中非常重要的一步,可以帮助分析二进制文件的具体实现逻辑和解决一些安全问题。原创 2023-06-11 17:26:15 · 4224 阅读 · 2 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(ELF可执行程序)
ELF(Executable and Linkable Format)是一种常见的可执行文件格式,广泛用于UNIX、Linux和其他类Unix操作系统中。它是一种二进制文件格式,包含了可执行代码、数据和各种元数据,例如符号表、段表和重定位表等。由一系列段(sections)和节区(segments)组成,每个段/节区包含不同类型的信息,例如代码、数据、符号表等。包含头部信息,描述了文件类型、入口点、段表、符号表等等。可以使用静态链接器或动态链接器链接到其他库或对象文件中,以形成最终的可执行文件。原创 2023-06-08 00:39:41 · 4403 阅读 · 2 评论 -
【愚公系列】2023年06月 移动安全之安卓逆向(前提概念)
IDA(Interactive Disassembler)是一款逆向工程领域常用的反汇编软件。它可以将二进制文件反编译成汇编代码,让逆向工程师可以查看和理解程序的工作原理。IDA可以解析C/C++语言结合ARM汇编的代码。在反汇编ARM二进制代码时,IDA可以识别出程序中的函数、变量和数据结构,并且可以根据程序流程图和调用关系图来分析程序结构。同时,IDA还支持对汇编代码的注释和标记,让逆向工程师可以更快速、更准确地理解程序功能。原创 2023-06-07 00:13:27 · 4621 阅读 · 1 评论 -
【愚公系列】2023年05月 《恶意代码分析和逆向基础》之IDA Pro
IDA Pro是逆向工程领域的一款反汇编软件,可以用于静态分析二进制文件以及恶意代码分析,以便理解程序的执行过程和行为。它提供了丰富的反汇编和反编译功能,可以支持多种硬件平台和操作系统。由于IDA Pro拥有广泛的使用和深厚的历史,因此被许多安全研究人员和逆向工程师所使用。原创 2023-04-29 23:43:34 · 8351 阅读 · 0 评论 -
【愚公系列】2023年04月 《恶意代码分析和逆向基础》之动态分析
恶意代码是一种意图对计算机系统、网络和数据造成破坏、窃取、泄露和滥用等威胁的计算机程序。恶意代码可能会通过植入计算机病毒、木马、蠕虫、后门、间谍软件、广告软件等形式,而不被用户或安全机制所察觉,以达到攻击目的。逆向分析是指通过研究软件或硬件的结构、算法、代码等方面的信息,来推断出它们的运行机制、功能、漏洞等信息的过程。逆向分析通常用于软件的反编译、漏洞挖掘、安全检测等领域。动态分析是指在运行时/runtime对程序执行的代码进行跟踪、监测和分析的过程。原创 2023-04-22 23:34:25 · 8942 阅读 · 2 评论 -
【愚公系列】2023年04月 《恶意代码分析和逆向基础》之静态分析
恶意代码是一种意图对计算机系统、网络和数据造成破坏、窃取、泄露和滥用等威胁的计算机程序。恶意代码可能会通过植入计算机病毒、木马、蠕虫、后门、间谍软件、广告软件等形式,而不被用户或安全机制所察觉,以达到攻击目的。逆向分析是指通过研究软件或硬件的结构、算法、代码等方面的信息,来推断出它们的运行机制、功能、漏洞等信息的过程。逆向分析通常用于软件的反编译、漏洞挖掘、安全检测等领域。静态分析是一种通过分析程序代码或二进制文件的方式来了解其内部结构和运行方式的方法。原创 2023-04-25 10:41:04 · 8680 阅读 · 2 评论 -
【愚公系列】2023年03月 网络安全-基于FlaUI的微信自动化
FlaUI是一个.NET库,有助于Windows应用程序(Win32,WinForms,WPF,Store Apps等)的自动化UI测试。它基于Microsoft的本机UI Automation库,因此可以围绕它们进行包装。FlaUI 包装了 UI 自动化库中的几乎所有内容,但也提供了本机对象,以防有人有 FlaUI 尚未涵盖的特殊需求。一些想法是从UIAComWrapper项目或TestStack.White复制的,但从头开始重写以获得干净的代码库。UIA定义了全新的、针对UI自动化的接口和模式。原创 2023-03-12 01:00:00 · 9026 阅读 · 13 评论 -
【愚公系列】2023年01月 网安实验-.NET程序的破解与加密
破解软件指的是研究软件的激活机制后,通过修改内存或者程序文件、或者写注册机(keygen)程序并随机产生有效的序列号注册码,来达到免费使用该软件、或者突破其功能限制的目的的过程。“软件混淆”是美国加州大学洛杉矶分校与IBM的研究人员共同设计出一个“数学拼图”加密软件系统,该系统在允许用户将其作为一个程序使用的同时,可阻止任何潜藏在背后的破译。ConfuserEx:免费开源的,比较好,只支持.NET Framework,较久未更新。.NET Reactor:收费,比较好,一直有更新。原创 2023-01-17 23:27:17 · 9382 阅读 · 2 评论 -
【愚公系列】2023年01月 网安实验-使用ARP协议让同事断网(实战包含源码软件)
ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。主机欺诈。原创 2023-01-04 00:30:00 · 8737 阅读 · 1 评论 -
【愚公系列】2023年06月 内存分析之WinDbg(IDA+WinDbg驱动调试)
IDA和WinDbg是两款不同类型的调试工具,通常用于不同的场景。IDA(Interactive DisAssembler)是一款交互式反汇编器,主要用于静态分析和反汇编二进制程序。它可以将二进制程序反编译成汇编语言,并提供了许多分析工具,可以查看反汇编代码,图形化地展示代码结构,并且可以跟踪代码的执行流程。IDA的优点是易于使用、功能强大、反汇编效果好,但是它不能用于动态调试。原创 2023-06-14 16:09:14 · 4669 阅读 · 2 评论 -
【愚公系列】2023年06月 内存分析之WinDbg(内核模式)
内核模式和用户模式是操作系统中的两种不同的运行模式。内核模式是操作系统的高权限模式,运行在CPU的特殊特权级别下,可以执行任何CPU指令并且可以访问所有系统资源,包括硬件设备和内存。用户模式是操作系统的低权限模式,在这个模式下,CPU只能执行一部分指令,并且对系统资源的访问受到限制,例如只能访问属于自己进程的内存空间。当操作系统启动时,内核被加载到内存中,并运行在内核模式下。当用户运行应用程序时,应用程序运行在用户模式下,只能访问自己的内存空间和一些受限的系统资源。原创 2023-06-14 14:08:05 · 4041 阅读 · 2 评论 -
【愚公系列】2023年06月 内存分析之WinDbg(用户模式)
内核模式和用户模式是操作系统中的两种不同的运行模式。内核模式是操作系统的高权限模式,运行在CPU的特殊特权级别下,可以执行任何CPU指令并且可以访问所有系统资源,包括硬件设备和内存。用户模式是操作系统的低权限模式,在这个模式下,CPU只能执行一部分指令,并且对系统资源的访问受到限制,例如只能访问属于自己进程的内存空间。当操作系统启动时,内核被加载到内存中,并运行在内核模式下。当用户运行应用程序时,应用程序运行在用户模式下,只能访问自己的内存空间和一些受限的系统资源。原创 2023-06-14 11:01:38 · 3993 阅读 · 11 评论 -
【愚公系列】2023年06月 内存分析之WinDbg(安装和基本介绍)
WinDbg是Windows Debugger的缩写,是一款由微软提供的高级调试工具,主要用于对Windows操作系统及其应用程序进行调试和分析。WinDbg的功能包括:支持对本地和远程计算机进行调试。支持多种调试器命令,包括检查和修改寄存器、内存、线程状态等。支持分析进程的崩溃信息和日志,以及执行调试。支持对Windows内核进行调试,包括内核模式驱动程序、系统服务等。使用WinDbg的基本流程如下:下载和安装WinDbg。打开WinDbg,启动调试器。选择要调试的程序或进程。原创 2023-06-14 09:44:08 · 4012 阅读 · 0 评论 -
2021-10-16 网安实验-Reverse-DedeCMS常见漏洞总结
利用token上传木马漏洞简介Dedecms V5.7 SP2版本中的tpl.php中存在代码执行漏洞,可以通过该漏洞在增加新标签中上传木马,获取webshell。该漏洞利用需要登录后台,并且后台的账户权限是管理员权限。复现首先获取token,访问:/dede/tpl.php?action=upload然后访问:/dede/tpl.php?filename=1.lib.php&action=savetagfile&content=<?php phpinfo();?>&原创 2021-10-16 22:46:29 · 46330 阅读 · 1 评论 -
2021-10-09 网安实验-Reverse-IDA基础教程六
在逆向过程中,除了写注释,还有件常做的事情就是给函数或地址重命名,特别是在一些地址无关代码(PIC),加壳或者封装函数中。因为在PIC代码和脱壳代码中,导入表可能并不存在于转储中;而封装函数的功能只是简单的调用API而已。比如下面这种代码,一个自动化的脚本可以帮助我们避免大量的手工操作。在上面的代码中,sub_10005B3E实际上是一个对函数HeapAlloc的封装,为了代码更具可读性,我们给它重命名w_HeapAlloc,w是封装的意思。重命名用到的函数为idc.MakeName(ea,name),原创 2021-10-09 09:28:56 · 48097 阅读 · 0 评论 -
2021-10-08 网安实验-Reverse-IDA基础教程五
不是所有时候我们都需要写一段代码来实现自动化的代码或者数据的查找,在有些情况下我们已经知道了目标代码或数据的位置,我们仅仅获取指定区域的代码,这时候可以使用idc.SelStart()和idc.SelEnd()比如我们选中如下的范围使用以下脚本获取所选区域地址脚本中start为所选区域的起始地址,end被赋值为该区域结束地址的下一条地址。当然还有个更专业的函数idaapi.read_selection(),该函数返回一个3元组,元组的第一个参数为布尔值,标记所选区域是否可读,第二和第三个参数为所选原创 2021-10-08 15:24:44 · 48179 阅读 · 0 评论 -
2021-10-08 网安实验-Reverse-IDA基础教程四
通过前面的学习我们已经能够通过遍历所有已知的函数及其指令来达到一种基本的搜索效果,这当然很有用,不过有时候我们需要搜索一些特定的字节,比如0x48 0xff 0xc2,这3个字节代表的汇编代码为inc rdx我们可以选中该指令后右键-》synchronized with->hex view 1,可以看到对应的字节我们可以使用idc.FindBinary(ea,flag,searcstr,radix=16)来进行字节或者二进制的搜索,flag代表搜索方向或条件,常用的包括:SEARCH_UP,原创 2021-10-08 15:21:01 · 48251 阅读 · 0 评论 -
2021-10-08 网安实验-Reverse-IDA基础教程三
我们直接在windows上使用IDApro载入,以此文件为样例,学习IDAPython的用法。操作数在逆向分析中经常被使用,所以了解所有的操作数对逆向分析非常有帮助。我们可以使用idc.GetOpTye(ea,n)来获取操作数类型,ea是一个地址,n是一个索引,从0开始。操作数一共有八种不同的类型。O_void:如果指令没有任何操作数,则返回0O_reg:如果操作数是寄存器,则返回这种类型,值为1O_mem:如果操作数是直接寻址的内存,那么返回该类型,值为2,这种类型对寻找DATA非常有帮助原创 2021-10-08 15:16:36 · 48389 阅读 · 0 评论 -
2021-10-08 网安实验-Reverse-IDA基础教程二
IDAPython有非常多获取数据的方式,最常用的是通过idc.GetFunctionAttr(ea,FUNCATTR_START)和idc.GetFunctionAttr(ea,FUNCATTR_END)两个调用来获取一个函数的边界地址。结果如下来解释下代码:idc.GetFunctionAttr(ea,attr)可以用来获取某个函数的首尾地址,idc.GetDisasm(ea)获取当前地址的反汇编代码。然后利用idc.NextHead()不停地获取下一个指令的地址,直到函数的结束地址才停止。G原创 2021-10-08 15:08:54 · 48084 阅读 · 0 评论 -
2021-10-08 网安实验-Reverse-IDA基础教程一
IDAPython直接在IDA里调用的话有两种办法:第一种是在IDA上方的菜单File->script command上图中右边用于输入脚本代码,下方是切换IDA和IDAPython,我们需要切换为IDAPython,如下所示然后输入打印hello的代码,点击run此时在IDA界面最下方就可以看到打印的消息了当然这个窗口我们使可以所以移动、放大缩小的为了后面分析方便,我们都排布成这个格式第二种运行IDAPython的办法就是直接在输出窗口处输入,如下所示输入后敲击回车即可运行原创 2021-10-08 09:29:40 · 48627 阅读 · 0 评论 -
2021-10-08 网安实验-Reverse-radare2进阶使用
一:NX保护机制绕过将一起使用radare 2绕过启用ASLR的系统上的NX保护的二进制文件,并进行exp的开发。拿到小程序后,我们首先使用rabin2查看文件相关信息现在我们来看看程序的反汇编。我们先以调试模式打开然后对符号,函数进行分析接下来继续执行,直到到达main函数接下来我们使用vv进入图形化模式我们可以看到main()函数中通过scanf()帮助我们输入,然后将输入值传递给sym.beet,因此定位到处理我们输入的beet函数我们可以看到,用户的输入[arg_8h]被原创 2021-10-08 09:16:19 · 48419 阅读 · 0 评论 -
2021-10-08 网安实验-Reverse-radare2基本使用
相关知识radare2是一个开源的逆向工程和二进制分析框架,包括反汇编、分析数据、打补丁、比较数据、搜索、替换、虚拟化等等,同时具备超强的脚本加载能力,它可以运行在几乎所有主流的平台(GNU/Linux, .Windows *BSD, iOS, OSX, Solaris…)并且支持很多的cpu架构以及文件格式。 radare2工程是由一系列的组件构成,这些组件可以在 radare2 界面或者单独被使用–比如我们将要在接下来实验中使用到的rahash2, rabin2, ragg2三个组件,所有这些组件赋予原创 2021-10-08 08:58:58 · 48057 阅读 · 0 评论 -
【愚公系列】2023年06月 逆向分析之Ollydbg(keygen)
注册机是一种软件,用于生成有效的软件许可证密钥或序列号,以使用户可以正常使用软件功能,而不必支付软件的正式许可费用。注册机通常是非法的,并且可能会导致软件开发商的损失。使用注册机可能会导致软件无法正常工作或产生不稳定的行为,并且可能会带来安全风险,因为它们经常包含恶意代码或病毒。强烈建议不要使用注册机,而是购买合法的软件许可证。原创 2021-09-30 16:48:09 · 48734 阅读 · 0 评论 -
【愚公系列】2023年06月 逆向分析之Ollydbg(程序破解案例02)
Ollydbg是常用的反汇编工具,可以用于分析和调试二进制程序。程序修改是指在指定函数或代码段中,按照指定顺序修改程序指令,以达到特定的目的。打开Ollydbg,并加载需要修改的程序。找到需要修改的函数或代码段,并在Ollydbg中打开该函数或代码段的反汇编窗口。根据需求,确定需要修改的指令序列,并记录下来。在反汇编窗口中,用鼠标左键双击需要修改的指令,进入修改模式。修改指令,并用鼠标右键点击修改后的指令,选择“修改代码”或“修改指令”选项。确认修改后的指令符合修改需求并保存修改。原创 2021-09-30 16:06:21 · 48826 阅读 · 0 评论 -
【愚公系列】2023年06月 逆向分析之Ollydbg(程序破解案例01)
Ollydbg是常用的反汇编工具,可以用于分析和调试二进制程序。程序修改是指在指定函数或代码段中,按照指定顺序修改程序指令,以达到特定的目的。打开Ollydbg,并加载需要修改的程序。找到需要修改的函数或代码段,并在Ollydbg中打开该函数或代码段的反汇编窗口。根据需求,确定需要修改的指令序列,并记录下来。在反汇编窗口中,用鼠标左键双击需要修改的指令,进入修改模式。修改指令,并用鼠标右键点击修改后的指令,选择“修改代码”或“修改指令”选项。确认修改后的指令符合修改需求并保存修改。原创 2021-09-30 15:26:29 · 49050 阅读 · 0 评论 -
【愚公系列】2023年06月 逆向分析之Ollydbg(进程线程调试)
进程和线程都是操作系统中用于并发执行任务的概念,但是它们有一些不同点:进程:进程是操作系统中资源分配的基本单位,它是一个运行中的程序实例。每个进程都有自己独立的虚拟地址空间、系统资源和数据栈等。线程:线程是进程中的一个执行单元,它是CPU调度的基本单位。一个进程中可以包含多个线程,它们共享进程的资源,包括虚拟地址空间、文件句柄和信号处理等。线程可以看做是一种轻量级的进程,它们之间的切换比进程切换更快捷。原创 2021-09-30 15:17:47 · 48642 阅读 · 0 评论 -
【愚公系列】2023年06月 逆向分析之Ollydbg(断点设置)
软件断点:在目标程序中插入的断点,可通过修改程序指令来实现调试控制。硬件断点:在CPU或存储器中设置的断点,可以捕获读取/写入操作,或者是当CPU执行到特定地址时暂停程序执行。内存断点:可以监视指定内存地址的读取、写入或执行操作,从而帮助解决内存访问问题。要设置断点,首先需要在Ollydbg中找到要断点的位置。可以手动在代码窗口中找到,也可以使用搜索功能来找到有特定特征的位置。然后,右键单击要断点的位置,选择断点类型(软件断点、硬件断点或内存断点),并设置断点选项(例如,仅在特定条件下停止执行)原创 2021-09-30 15:00:35 · 48559 阅读 · 0 评论 -
【愚公系列】2023年06月 逆向分析之Ollydbg(字符串、WindowsAPI搜索)
Ollydbg是一个x86体系结构的反汇编器和调试器,它是一款非常受欢迎的调试工具,通常用于软件逆向工程和漏洞发现过程中。可以反汇编并调试x86二进制文件支持多种反汇编风格,如汇编、C、Pascal等支持多种调试功能,如单步执行、断点、内存查看和修改等可以在不影响原始代码的情况下修改程序内容,并重新运行程序打开Ollydbg并加载要调试的二进制文件设置断点,例如在特定的指令处停下来或在某个内存位置处停下来运行程序并观察断点何时触发在程序暂停时查看寄存器、堆栈、内存和其他相关信息。原创 2021-09-30 10:35:57 · 48694 阅读 · 0 评论 -
【愚公系列】2023年06月 逆向分析之Ollydbg(基本介绍和使用)
Ollydbg是一个x86体系结构的反汇编器和调试器,它是一款非常受欢迎的调试工具,通常用于软件逆向工程和漏洞发现过程中。可以反汇编并调试x86二进制文件支持多种反汇编风格,如汇编、C、Pascal等支持多种调试功能,如单步执行、断点、内存查看和修改等可以在不影响原始代码的情况下修改程序内容,并重新运行程序打开Ollydbg并加载要调试的二进制文件设置断点,例如在特定的指令处停下来或在某个内存位置处停下来运行程序并观察断点何时触发在程序暂停时查看寄存器、堆栈、内存和其他相关信息。原创 2021-09-30 09:19:17 · 49549 阅读 · 0 评论