(完整版)常见几种脱壳方法
脱谷壳的方法
脱谷壳的方法
谷壳,指的是一些谷类作物的外壳。
谷壳包裹着储存在其中的谷粒,是谷类作物的保护壳,但是在食用时需要将其去除。
以下是一些脱谷壳的方法。
1. 手工去壳法
手工去谷壳法是一种较为传统的脱谷壳方法。
首先要将谷类作物晒干,再使用手动操作将谷壳剥离。
这种方法需要较多的人工,操作效率不高,同时也容易使谷壳碎裂或留下残留物。
2. 使用机械设备
使用机械设备脱谷壳是现代化生产方式。
这种方法适合大规模生产和批量加工。
常见的机械设备有谷物脱壳机和冲击式脱壳机。
谷物脱壳机主要通过摩擦力和重力对谷壳进行破碎和分离,而冲击式脱壳机则通过强力破碎和分离。
3. 热水浸泡
热水浸泡脱谷壳方法适合小规模加工,方式简单易行。
将谷类作物放入热水中浸泡一段时间,等谷壳变软后就可以轻松地去壳了。
这种方法可以避免谷壳碎裂问题,但需要耗费较多的能源和时间。
4. 烤爆
烤爆方法适合球形谷类作物(如芝麻、高粱等)的脱壳。
将谷类作物放入烤箱中进行烤爆,等谷壳炸裂后就可以轻松地摘除谷壳了。
这种方法需要注意火候控制,以避免谷粒受损。
总的来说,不同的脱谷壳方法适合不同的谷类作物和不同的需求。
生产者可以根据实际情况选择最适合自己的脱谷壳方法。
常见的脱壳方法范文
常见的脱壳方法范文脱壳是指将一个已经加密或保护的程序反编译或解密成原始的可执行文件或源代码的过程。
常见的脱壳方法主要包括静态脱壳和动态脱壳两种方法。
1.静态脱壳方法静态脱壳是指将已经加密或保护的程序文件保存到硬盘,然后通过一些工具进行反编译或解密。
常见的静态脱壳方法有:(1) IDA Pro:IDA Pro是一种功能强大的交互式反汇编软件,可以将二进制文件转换成可读的汇编代码,从而方便进行分析和修改。
(2) OllyDbg:OllyDbg是一种强大的动态调试工具,可以在运行时跟踪程序的执行过程,并在关键处设置断点和查看内存状态,从而找到程序解密和脱壳的关键函数。
(3)PEiD:PEiD是一种可携带的工具,能够识别和解析PE文件,包括可执行文件、动态链接库和驱动程序。
PEiD可以检测程序中使用的加密算法和保护措施,并提供脱壳插件。
2.动态脱壳方法动态脱壳是指通过调试程序的运行过程,找到加密和解密函数的位置和参数,从而在运行过程中直接提取出原始可执行文件或源代码。
常见的动态脱壳方法有:(1) API hooking:API hooking是指通过拦截和替换程序使用的API 函数,来修改程序的行为。
通过在API函数前插入脱壳代码,可以截获加密和解密过程中的数据和密钥,从而得到原始的可执行文件或源代码。
(2)内存转储:内存转储是指将程序在运行时的内存状态保存到文件中,然后利用其他工具对内存进行分析。
通过分析内存中的数据和代码,可以找到加密和解密函数的位置和参数,从而得到原始的可执行文件或源代码。
(3)运行时调试:运行时调试是指通过调试工具在程序运行过程中设置断点、查看内存和寄存器状态,来跟踪程序的执行过程。
通过查看程序的执行流程和数据变化,可以找到加密和解密函数的位置和参数,从而得到原始的可执行文件或源代码。
总结:脱壳方法主要包括静态脱壳和动态脱壳两种方法。
静态脱壳是将已经加密或保护的程序保存到硬盘,然后通过反编译或解密工具进行分析或修改。
脱壳或去皮的方法
脱壳或去皮的方法一、脱壳常用的脱壳有碾搓法、撞击法、剪切法及挤压法外,剥壳方法还有摩擦法。
值得注意的是,任何剥壳机往往是一种剥壳方法为主而几种剥壳方法为辅的综合作用的结果。
摩擦法:利用摩擦形成的剪切力使皮壳沿其断裂而产生撕裂破坏,除下的皮壳整齐,便于选除,适用于韧性皮壳。
前述的脱壳法都是利用机械对农作物籽粒产生机械力的作用而实现脱壳的,以下是非机械式的脱壳方法。
能量法:利用籽粒在一个特殊环境中经受一定时间的高温高压作用,使得大量热量或气体聚集于籽粒壳内,并使籽粒内外达到气压平衡,然后让籽粒瞬间脱离高温高压环境,此时,聚集在籽粒壳与仁间的压力瞬时爆破,从而实现脱壳目的。
真空法:利用壳内外产生的压力差进行脱壳。
它与能量法脱壳的不同之处在于它不是使气体进入籽粒壳内,而是在一定的范围内,在真空泵的抽吸作用下使壳外压力降低,壳内部处于相对较高压力状态,当压力差达到一定数值时,使外壳爆裂。
一般采用单真空源与多个装料爆壳室相结合的配置。
微波爆壳法:利用电磁场的作用力对籽粒进行破壳。
当微波作用于需脱壳的籽粒时,籽仁内水分子在交变电磁场的作用下将电磁能转化为热能。
这种转变使籽仁在短时间内具有很高的能量,并迅速向外扩散,水分也沿着能量传递的方向迅速外迁,籽仁组织内部的部分结合水分转变为自由水分汽化逸出,导致籽仁失水而收缩。
汽化逸出的自由水分以一定的压力作用于外壳,破坏了籽仁与外壳的贴合。
同时,外壳在微波的作用下,组织内结合水分减少使纤维组织韧性下降、强度降低。
由于籽仁与外壳在微波作用下的变形不一致,导致籽仁与外壳的分离,使脱壳成为可能。
二、去皮用于去除果蔬表皮的去皮机,按去皮对象可分为:1.块状根茎类原料去皮机;2.果蔬去皮机。
除常用的机械去皮和化学去皮还有一些其他方法。
蒸汽加热去皮法:用于马铃薯、胡萝卜等块状茎类作物去皮前表面爆裂处理作业,特别适合外形凹凸不平且不规则的物料去皮。
辐射去皮:利用辐射波被物料表皮的水分吸收、蒸发、使入射的辐射波被物料表皮的水分吸收、蒸发、使入射的辐射波刚进入受热体浅表层即引起强烈的共振。
脱壳方法总结
脱壳方法总结1. 引言在软件开发和逆向分析领域,脱壳(Unpacking)是指将一个已经被加密或保护的可执行文件还原到其原始状态的过程。
通过脱壳,分析人员可以获取被加密或保护的文件的源代码、算法、关键函数等信息,从而进行后续的逆向工程分析。
本文将总结几种常见的脱壳方法,并介绍它们的原理和使用场景。
2. 静态脱壳方法静态脱壳方法是指在不运行程序的情况下,通过对加密或保护的文件进行静态分析,还原出原始的可执行文件。
2.1. 字节码分析字节码分析是通过对加密或保护的文件进行二进制分析,识别出不同的加密算法或保护机制,从而还原出原始文件。
常见的字节码分析工具有IDA Pro、Radare2等。
2.1.1. IDA ProIDA Pro是一款功能强大的反汇编工具,可以用于对二进制文件进行逆向分析。
通过加载被加密或保护的文件,IDA Pro可以在图形界面下显示程序的反汇编代码。
通过对代码进行分析,可以识别出不同的加密算法或保护机制,从而编写相应的解密脚本。
2.1.2. Radare2Radare2是另一款强大的反汇编工具,它以命令行形式提供了一系列功能,可以对二进制文件进行静态分析。
通过使用Radare2的命令,可以查看程序的反汇编代码,识别出加密或保护机制,并编写相应的解密脚本。
2.2. 调试器调试器是一种用于运行和调试程序的工具,通过对加密或保护的文件进行动态分析,可以观察程序的行为,从而还原出原始文件。
常见的调试器有OllyDbg、GDB等。
2.2.1. OllyDbgOllyDbg是一款运行在Windows平台上的调试器,它可以用于对可执行文件进行动态分析。
通过加载被加密或保护的文件,OllyDbg可以以汇编代码的形式显示程序的执行过程。
通过逐步执行程序,并观察寄存器、堆栈等信息的变化,可以找到解密过程中使用的关键函数和算法。
2.2.2. GDBGDB是一款开源的调试器,可以运行在多种平台上,如Linux、macOS等。
几种用OD脱壳方法
几种用OD脱壳方法OD是反编译软件的一种,可以将可执行文件转换为可读的源代码。
脱壳是指从已经加密或保护的软件中提取出原始的未加密或未保护的代码。
下面是几种常见的OD脱壳方法:1.静态分析法:静态分析是指对二进制文件进行分析,了解其结构、函数调用和控制流程等信息。
通过对逆向工程的分析,可以分析出加密算法和解密函数的位置。
使用静态分析法脱壳的主要步骤如下:-打开OD软件,将加密的可执行文件加载到OD中。
- 使用各种OD工具,如IDA Pro,OllyDbg等,显示可执行文件的汇编代码。
-通过分析代码和调试程序,找到加密算法和解密函数的位置。
-根据找到的位置,修改程序的执行流程,跳过解密函数,使得程序直接执行解密后的代码。
2.动态调试法:动态调试是指在运行时对程序进行调试和分析。
使用动态调试法脱壳的主要步骤如下:-打开OD软件,将加密的可执行文件加载到OD中。
- 使用动态调试工具,如OllyDbg或GDB等,在程序执行期间跟踪和记录函数调用和内存访问。
-通过分析函数调用和内存访问,找到加密算法和解密函数的位置。
-在找到的位置上下断点,执行程序并使用OD工具查看解密后的代码。
3.内存镜像法:内存镜像法是指通过将程序加载到内存中,并对内存进行镜像和分析来脱壳。
使用内存镜像法脱壳的主要步骤如下:-运行加密的可执行文件。
- 使用内存镜像工具,如DumpBin或WinDBG等,将程序的内存镜像保存到磁盘上。
-使用OD软件加载内存镜像文件。
-通过分析内存镜像文件,找到加密算法和解密函数的位置。
-修改程序的执行流程,跳过解密函数,使得程序直接执行解密后的代码。
这些方法都可以用于将加密的可执行文件转换为可读的源代码,从而进行进一步的分析和修改。
脱壳过程需要进行深入的逆向工程和对程序的理解,因此需要具备一定的技术和知识。
此外,需要注意的是,脱壳过程可能涉及到破解和侵犯版权的行为,应遵守法律规定,并仅限于安全研究和个人学习的目的使用。
普通壳的脱壳方法和脱壳技巧
普通壳的脱壳方法和脱壳技巧脱壳是指将一个已经打包的可执行文件(通常是二进制文件)恢复为原始的、可以读取和修改的形式。
这在软件逆向工程、安全审计和病毒分析等领域都是非常常见的操作。
下面我将为你介绍普通壳的脱壳方法和脱壳技巧。
一、普通壳的脱壳方法1.静态脱壳静态脱壳是指对目标文件进行分析,找到壳的解密和载入代码,然后将其解密出来,恢复原始的可执行文件。
- 调试器脱壳:使用调试器(如OllyDbg、IDA Pro等)来单步执行目标程序,找到壳的解密代码,并通过调试器的内存分析功能来寻找待解密的数据。
一旦找到解密的算法和密钥,就可以将目标文件完全解密出来。
- 静态分析脱壳:通过静态分析工具(如IDA Pro、Hopper等)来逆向目标文件,找到壳的解密算法和密钥,然后将其解密出来。
2.动态脱壳动态脱壳是指在目标程序运行时,通过对程序的运行过程进行监控和分析,找到壳的解密和载入代码,并将其解密出来,恢复原始的可执行文件。
-API钩取脱壳:通过使用一个DLL注入到目标程序的地址空间中,然后使用API钩子来监控API函数的调用,找到壳解密代码的入口点。
一旦找到壳解密代码的起始地址,就可以通过调试器执行目标程序,并在合适的时机将解密出来的代码或数据导出。
- 内存转储脱壳:通过在目标程序的执行过程中,使用内存转储工具(如winhex、ollydump等)将目标程序的内存转储出来,然后使用静态脱壳的方法对内存转储文件进行分析。
二、普通壳的脱壳技巧1.加载器分析在进行脱壳之前,首先要分析目标文件中的加载器。
加载器是壳程序的一部分,用于解压和载入真正的可执行文件。
通过分析加载器,可以确定载入代码和解密算法的位置,并推导出解密算法的密钥。
2.寻找壳代码的入口点在进行脱壳时,需要找到壳代码的入口点,即壳程序开始执行的位置。
可以通过调试器或者静态分析工具来寻找入口点,并标记下来以备后续使用。
3.内存和断点设置通过内存和断点设置,在目标程序运行过程中定位到关键的内存位置。
Armadillo脱壳知识和方法大全
般情况下,这个跳转比较大的话,就改为jmp,而跳转比较小的话,就改nop)。[注:下此断点的目的是找到Magic Jump,修改Magic Jump目的
是避开的IAT的加密。]
2、找OEP
下断点bp GetCurrentThreadId/bp CreateThread,shift+f9运行,中断后,取消断点,Alt+F9返回,单步执行,看到一个call edi之类的。F7
进入,即到oep。OD不要关!打开import--选择进程--OEP输入va--自动搜索IAT--获取输入表--显示无效函数--CUT!
(二) 双线程的标准壳
总体步骤:1、要双变单;2、处理IAT,修改Magic Jump;3、寻找OEP;4、修复
1、双变单,方法有三。
方法一:PATCH代码法
004010109D popfd
0040101161 popad
00401012- E9 8F9FA777jmp KERNEL32.OpenMutexA
点右键选择重建eip,f9运行,断下后,取消断点, ctrl+g到00401000,恢复修改。
方法二:下断点BP OpenMutexA,SHIFT+F9运行,断下后,ALT+F9返回,返回后,将返回代码下面的第一个跳转改为相反跳转,再次SHIFT+F9
,断下后,ALT+F9返回,再次将返回代码下面的第一个跳转改为相反跳转。然后再一次SHIFT+F9,取消断点,至此,同样,双进程转单进程完毕!
此法相对简单,另外适用于00401000空数据不能修改的程序。
(2)修改Magic Jump 。
下断BP GetModuleHandleA+5,运行,一般是在堆栈窗口出现ASCII "kernel32.dll"和ASCII "VirtualFree后,再运行一次,就是返回时机,中
脱壳找OEP7种基本方法
脱壳找OEP7种基本方法七种找OEP的方法OD手动脱壳的7种法则方法一:单步跟踪法1.用OD载入,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。
也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN 的一般很快就会到程序的OEP。
PS:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。
一般情况下可以轻松到达OEP!方法二:ESP定律法ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突变成红色。
(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!3.选中下断的地址,断点--->硬件访--->WORD断点。
4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP。
方法三:内存镜像法1:用OD打开软件!2:点击选项——调试选项——异常,把里面的忽略全部√上!CTRL+F2重载下程序!3:按ALT+M,打开内存镜象,找到程序的第一个.rsrc.按F2下断点,然后按SHIFT+F9运行到断点,接着再按ALT+M,打开内存镜象,找到程序的第一个.rsrc.上面的.CODE(也就是00401000处),按F2下断点!然后按SHIFT+F9(或者是在没异常情况下按F9),直接到达程序OEP!方法四:一步到达OEP1.开始按Ctrl+F,输入:popad(只适合少数壳,包括UPX,ASPACK壳),然后按下F2,F9运行到此处2.来到大跳转处,点下F8,到达OEP!方法五:最后一次异常法1:用OD打开软件2:点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序3:一开始程序就是一个跳转,在这里我们按SHIFT+F9,直到程序运行,记下从开始按SHIFT+F9到程序运行的次数m!4:CTRL+F2重载程序,按SHIFT+F9(这次按的次数为程序运行的次数m-1次)5:在OD的右下角我们看见有一个"SE句柄",这时我们按CTRL+G,输入SE句柄前的地址!6:按F2下断点!然后按SHIFT+F9来到断点处!7:去掉断点,按F8慢慢向下走!8:到达程序的OEP!方法六:模拟跟踪法1:先试运行,跟踪一下程序,看有没有SEH暗桩之类2:ALT+M打开内存镜像,找到(包含=SFX,imports,relocations)内存镜像,项目30地址=0054B000大小=00002000 (8192.)Owner=check 00400000区段=.aspack包含=SFX,imports,relocations类型=Imag 01001002访问=R初始访问=RWE3:地址为0054B000,如是我们在命令行输入tc eip<0054B000,回车,正在跟踪ing。
几种用OD脱壳方法
几种用OD脱壳方法OD(Object Dump)即对象转储,是指将内存中的对象转化为文件或其他形式的过程。
脱壳是指从被加壳/保护的程序中提取可执行代码的过程。
以下是几种常见的用OD脱壳方法:1.静态脱壳:静态脱壳是指在未运行程序的情况下进行脱壳。
这种方法适用于一些简单的壳或保护机制。
静态脱壳一般包括以下步骤:-分析被加壳程序的文件结构,确定壳的类型和解密算法。
-定位加密/保护的代码段和目标程序的入口点。
-提取加密的代码段并进行解密。
-删除或替换壳代码,将解密的代码插入到目标程序的入口点。
2.动态脱壳:动态脱壳是指在运行被加壳程序的过程中进行脱壳。
这种方法更加复杂,但可以应对一些更强大的保护机制。
动态脱壳的步骤如下:- 使用调试器(如OllyDbg、IDA Pro等)加载被加壳程序,并设置断点。
-运行程序并观察其行为。
一般可以通过跟踪内存或执行流来确定代码解密、动态链接等操作。
-当程序执行到解密/动态链接等关键点时,暂停程序并检查相关内存中的加密数据。
-通过观察内存数据的变化和算法的操作,找出解密算法、关键数据等。
-使用调试器的功能(如修改内存、暂停/恢复执行等)来修改和恢复解密的数据,最终达到脱壳的目的。
3.虚拟机检测:有时候,加壳程序会在运行时检测是否在虚拟机中执行。
如果发现运行在虚拟机中,则不会执行解密操作。
因此,一种常见的脱壳方法是绕过虚拟机检测。
这可以通过修改虚拟机检测函数的返回值来实现。
通过调试器可以定位到虚拟机检测的相关代码,并修改相应的变量或寄存器值。
4.内存脱壳:部分加壳程序并不是一次性将整个程序都解密并运行,而是采用内存加载的方式,将加密的代码段逐步解密到内存中执行。
这种情况下,可以使用内存脱壳来获取完整的可执行文件。
内存脱壳的步骤如下:-使用调试器加载被加壳程序。
-执行程序,观察其行为并找到解密/加载代码的操作。
-在解密/加载代码执行前暂停程序,此时可使用调试器的内存修改功能,在内存中找到加密的代码段,并修改为解密后的代码。
举例说明果品类原料的去皮方法
举例说明果品类原料的去皮方法
果品类原料去皮的方法有很多,以下是一些常见的例子:
1. 土豆:土豆去皮可以使用削皮刀或刮皮刀。
先将土豆洗净,用刀将土豆皮削去,然后用水冲洗干净。
2. 橙子:将橙子放在桌子上,用手掌压住来回揉搓一会,然后用手或刀子将橙子皮剥掉。
3. 核桃:在砸核桃时,先把核桃放入锅里水开后蒸至5分钟,取出核桃倒入冷水中,就可以轻松剥皮。
4. 桃子:将桃子放入开水中1分钟,再浸入冷水中,取出后就很容易剥皮了。
5. 柚子:剥柚子皮前,先把柚子在桌子上揉,揉好后,把柚子从中间切开就可以。
6. 芒果:把芒果放到烤炉上烤片刻,要烤的均匀,烤5至8秒后拿下来,
用刀切四等分,然后再剥皮就容易多了。
除了以上例子,还有蚕豆、红枣、栗子等果品类原料也可以使用相应的去皮方法。
蔬菜水果等快速去皮方法技巧
蔬菜水果等快速去皮方法技巧快速去皮蔬菜和水果是厨房里必不可少的技巧。
不仅可以提高烹饪效率,还可以减少食材浪费。
下面是一些常见的快速去皮方法和技巧。
一、去皮器具1.万能刨刀:这是一种双刃的刀具,一面是平板刀,另一面是刨刀。
可以用平板刀将果皮划开,在用刨刀将果皮刨去。
2.刀:适用于去皮硬质水果和蔬菜,如红薯、木瓜等。
使用刀尖将果皮划开,然后用刀背将果皮剥离。
二、水果的快速去皮方法1.橙子:将橙子两端切掉,然后将刀从顶部划下,垂直方向一直到底部。
削皮时尽量保持连接,使剥去的果皮尽可能完整。
2.苹果:在苹果顶部打一个小孔,然后将水果刀插入小孔中,顺着水果表面的轮廓将果皮剥离。
3.梨子:将梨子两端切掉,然后将刀从顶部划下,垂直方向一直到底部。
削皮时尽量保持连接,使剥去的果皮尽可能完整。
4.葡萄:将葡萄取出来,放入热水中焯烫,然后将果皮剥离。
三、蔬菜的快速去皮方法1.土豆:将土豆放入开水中焯烫几分钟,然后将土豆捞出来,用手轻轻地揉搓土豆,果皮就会轻松剥离。
2.胡萝卜:将胡萝卜两端切掉,然后用削皮刀将胡萝卜削去表皮。
3.黄瓜:将黄瓜两端切掉,然后用削皮刀将黄瓜削去表皮。
4.青豆:将青豆去壳时,可以先在豆头两侧轻轻捏住,用力往外推,果皮就会松开。
四、其他注意事项1.尽量选择平整的水果和蔬菜,这样可以更容易去皮。
2.在处理水果和蔬菜之前,先将刀具和双手清洗干净,以免传染细菌。
3.切削时要专注,避免切伤自己。
快速去皮的技巧可以帮助厨师们更高效地进行烹饪。
通过运用这些技巧,可以节省时间和精力,并减少浪费,让烹饪过程更加顺利。
压缩壳脱法
压缩壳脱法:------------------方法一:单步跟踪法------------------介绍:这是最通用的方法,对于未知壳,基本都用这种方法,这种方法过程比较麻烦,要一步一步的跟踪分析,要有一定的耐心.1.用OD载入,选"不分析代码"2.单步向下跟踪按F8,实现向下的跳.不让程序往回跳.3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)4.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易运行.5.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入.6.一般遇到很大的跳转(跨段跳),比如 jmp XXXXXX 或 JE XXXXXX 或有RETN的一般很快就会到程序的OEP。
-----------------方法二:ESP定律法-----------------介绍: 这种方法可以脱大部的压缩壳和少数加密壳,操作起来比较简单,脱壳速度也相对比较快.1.开始就点F8向下走,注意观察OD右上角的寄存器中ESP有没突现(变成红色)2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者hrXXXXXXXX),按回车!3.选中下断的地址,断点--->硬件访--->WORD断点。
4.按一下F9运行程序,直接来到了跳转处,按下F8向下走,就到达程序OEP。
-----------------方法三:内存镜像法-----------------介绍:也是一种比较好用的脱壳方法,大部分的压缩壳和加密壳用内存镜像法能快速脱掉.非常实用.1.用OD打开,设置选项——调试选项——异常,忽略所有异常(也就是把里面的忽略全部√上),然后CTRL+F2重载下程序!2.按ALT+M,打开内存镜象,找到程序的第一个.rsrc.按F2下断点,然后按SHIFT+F9运行到断点.3.接着再按ALT+M,打开内存镜象,找到程序的第一个.rsrc.上面的.CODE,按F2下断点!然后按SHIFT+F9,直接到达程序OEP!----------------方法四:一步到OEP----------------介绍:这是一种巧方法,脱壳速度最快,前提是要知道这个壳的特征,利用这种壳的共性快速找到程序的OEP.这种方法只用于少数壳.1.开始按Ctrl+F,输入:popad,然后按下F2下断,按F9运行到此处.2.很快来到大跳转,按F8向下走,来到OEP.----------------------方法五:最后一次异常法:----------------------介绍:这种方法一般用于加密壳,这是脱加密壳的一种通用方法.第一步:用OD打开程序,点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序.第二步:接着我们按SHIFT+F9,直到程序运行,记下从开始按SHIFT+F9到程序运行的次数n.第三步:重载程序,再按SHIFT+F9,这次按的次数为上次让程序运行时的次数的n-1次.第四步:此时观察OD的右下角有一个"SE 句柄",这时我们按CTRL+G,输入SE 句柄前的地址!来到这个地址.第五步:在这里,按F2下断点!然后按SHIFT+F9来到断点处!第六步:这时候我们已经跳过了所有异常,然后去掉断点,按F8慢慢向下跟踪很快就到达OEP 了.----------------------模拟跟踪法----------------------1.运行程序,确定是否有暗桩。
快速去皮小窍门
快速去皮小窍门
1.使用刮刀:使用刮刀可以快速去除水果和蔬菜的皮。
刮刀可以轻松地刮去果皮,如苹果、梨、西瓜、甜瓜等。
使用刮刀时要小心,不要伤到手指。
2. 热水浸泡:将水果或蔬菜放入热水中浸泡一段时间,然后用刀轻轻地刮掉皮。
这种方法适用于橘子、柚子、橙子、番茄等水果和蔬菜。
3. 切片去皮:像洋葱、蒜头等蔬菜可以先切成两半,然后用刀轻轻地剥掉外层的皮。
这种方法可以快速去除蔬菜的皮,而且不会浪费太多食材。
4. 使用削皮器:削皮器可以快速去除水果和蔬菜的皮,而且可以削成整齐的条状或片状。
使用削皮器时,要保持手部干燥,以免滑动和伤到手指。
5. 总结:快速去皮的小窍门有很多种,可以根据不同的水果和蔬菜采用不同的方法,以达到快速高效的去皮效果。
无论是使用刮刀、热水浸泡还是削皮器,都要注意安全和卫生。
- 1 -。
(完整版)常见几种脱壳方法
一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳(强壳)两种"UPX" "ASPCAK" "TELOCK" "PELITE" "NSPACK北斗)"... "ARMADILLO" "ASPROTECT" "ACPROTECT" "EPE(王)" "SVKP" ...顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。
当然加密壳的保护能力要强得多!---------- < 小A分割线> ------------------二、工具的认识OllyDBG ring3 shell 层级别的动态编译工具、PEid、ImportREC、LordPE、softIce ring0 级别调试工具------------ <小A分割> -------------------三、常见手动脱壳方法预备知识1. PUSHAD (入栈/压栈)代表程序的入口点,2. POPAD (弹栈/出栈)代表程序的出口点,与PUSHA想对应,一般找到这个OEP就在附近3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOE P,只要我们找到程序真正的OEP就可以立刻脱壳。
---------- < 小A分割线> --------------------------1. 用OD载入,点“不分析代码!”2. 单步向下跟踪F8,实现向下的跳。
也就是说向上的跳不让其实现!(通过F4)3. 遇到程序往回跳的(包括循环),我们在下一句代码处按F4 (或者右健单击代码,选择断点——>运行到所选)4. 绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5. 如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6. 在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入7. 一般有很大的跳转(大跨段),比如jmp XXXXXX或者JE XXXXXX或者有RETN 的一般很快就会到程序的OEP。
(完整版)常见几种脱壳方法(可编辑修改word版)
----------------<小 A 分>----------------一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳(强壳)两种"UPX" "ASPCAK" "TELOCK" "PELITE" "NSPACK(北斗)" ... "ARMADILLO" "ASPROTECT" "ACPROTECT" "EPE(王)" "SVKP" ...顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。
当然加密壳的保护能力要强得多!-----------<小 A 分割线>-------------二、工具的认识OllyDBG ring3 shell 层级别的动态编译工具、PEid、ImportREC、LordPE、softIce ring0 级别调试工具-------------<小 A 分割>-------------------三、常见手动脱壳方法预备知识1.P USHAD (入栈/压栈)代表程序的入口点,2.P OPAD (弹栈/出栈)代表程序的出口点,与 PUSHAD 想对应,一般找到这个OEP 就在附近3.O EP:程序的入口点,软件加壳就是隐藏了 OEP(或者用了假的 OEP/FOEP),只要我们找到程序真正的 OEP,就可以立刻脱壳。
------------<小 A 分割线>--------------------方法一:单步跟踪法1.用OD 载入,点“不分析代码!”2.单步向下跟踪 F8,实现向下的跳。
也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按 F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个 CALL 的,我们就 F7 跟进去,不然程序很容易跑飞,这样很快就能到程序的 OEP6.在跟踪的时候,如果运行到某个 CALL 程序就运行的,就在这个 CALL 中F7 进入7.一般有很大的跳转(大跨段),比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN 的一般很快就会到程序的 OEP。
如何快速剥壳的技巧
快速剥壳的技巧如下:
1. 剥虾壳:剥虾壳时,可以先抓住虾头,轻轻扯下虾壳,同时用一只手托住虾身,以防虾肉弄碎。
剥到虾尾时,要特别小心,不要把虾肉扯断。
扯断或剩余的虾壳会很容易剥掉。
2. 剥板栗壳:剥板栗壳时,可以先用刀在板栗上划一个十字,然后放入沸水中煮或烫,这样更容易剥去外皮。
捞出板栗后,用手指甲慢慢剥开内皮。
如果想快速一点,可以借助剪刀,但要注意安全。
3. 剥核桃壳:将核桃放入开水中浸泡,过几分钟后,可以轻易地剥开核桃壳。
4. 剥玉米粒:将玉米放入冰箱冷冻室中冰冻一会儿,这样玉米粒更易剥下。
或者将玉米放入沸水中煮一会儿,待玉米皮变热后,即可较轻易地剥下外皮。
请注意,以上技巧仅供参考,使用剪刀时请务必小心,避免割伤。
同时,不同食物的剥壳方法可能因个人习惯和喜好而异,上述技巧仅供参考,具体方法还需根据实际情况调整。
以上就是快速剥壳的一些技巧,希望对您有所帮助。
在操作过程中一定要确保自身安全,避免因不正确的操作导致手部划伤等危险情况。
如果您还有其他问题,欢迎随时向我提问。
古时稻谷脱壳方法
古时稻谷脱壳方法稻谷是人们生活中重要的粮食作物之一,而在古时代,人们并没有现代化的机械设备来帮助他们进行稻谷的脱壳工作。
那么,古时的人们是如何进行稻谷脱壳的呢?下面我们将介绍几种古时稻谷脱壳的常见方法。
一、摔打法摔打法是一种较为简单粗暴的稻谷脱壳方法。
人们将收割下来的稻谷放置在坚硬的地面上,然后用棍棒等工具对稻谷进行猛烈的摔打,使稻谷的外壳破裂,从而达到脱壳的目的。
这种方法简单易行,但也容易导致稻谷破碎或损坏,影响粮食的品质。
二、踩踏法踩踏法是一种利用人的力量来进行稻谷脱壳的方法。
人们将收割下来的稻谷铺在干燥的地面上,然后用双脚来回踩踏稻谷。
通过踩踏的力量,稻谷的外壳会逐渐破裂,从而实现脱壳的效果。
这种方法需要耐力和力量,但相对于摔打法,能更好地保护稻谷的完整性。
三、摩擦法摩擦法是一种利用稻谷与容器之间的摩擦力来进行脱壳的方法。
人们将稻谷放入一个容器中,然后用双手或工具来回搓动容器,使稻谷与容器内壁摩擦,从而磨去稻谷外壳的一部分。
这种方法能够较好地控制脱壳的力度,但需要更多的时间和精力。
四、水浸法水浸法是一种较为特殊的稻谷脱壳方法。
人们将收割下来的稻谷放入水中浸泡一段时间,待稻谷外壳变软后,再进行脱壳。
这种方法适用于稻谷外壳较硬或质量较差的情况,但需要注意控制浸泡时间,避免稻谷因过度浸泡而出现发芽或变质的问题。
五、石磨法石磨法是一种利用石磨来进行稻谷脱壳的方法。
人们将稻谷放置在石磨上,用手或脚来回推动石磨,使石磨内的石头与稻谷摩擦,从而实现脱壳的效果。
这种方法需要一定的技巧和力量,但能够较好地控制脱壳的速度和力度,避免损坏稻谷。
以上是古时稻谷脱壳的几种常见方法。
虽然这些方法相对于现代化的机械设备来说显得原始和低效,但在古时代,人们凭借这些简单的方法仍能完成稻谷的脱壳工作。
这些方法不仅展示了古人的智慧和勤劳,也是对稻谷这一重要粮食作物的尊重和珍惜。
稻谷脱壳简易方法
稻谷脱壳简易方法
稻谷脱壳是稻谷加工的一个重要环节,一般来说,稻谷脱壳需要用到专业的设备和技术。
但是,如果您只是想在家中将一些稻谷脱壳,也有一些简易的方法可以尝试。
第一种方法:用锤子和木棒
将稻谷放入一个干净的布袋子中,用锤子和木棒轻轻敲打稻谷,让稻壳逐渐脱落。
需要注意的是,敲打的力度不能过大,否则会把米粒也打碎。
第二种方法:用轮胎和车轮
将稻谷放入一个大轮胎中,然后用车轮轻轻地滚动轮胎,让稻壳逐渐脱落。
这种方法比较适合大量的稻谷加工。
第三种方法:用清水浸泡
将稻谷放入清水中浸泡一段时间,然后用手轻轻搓洗,让稻壳逐渐脱落。
这种方法比较适合家庭使用,但需要注意的是,水温不宜过高,否则容易煮熟稻米。
以上是一些简易的稻谷脱壳方法,需要根据实际情况选择合适的方法进行加工。
- 1 -。
生活中的各种“剥皮”技巧!
生活中的各种“剥皮”技巧!生活中的各种“剥皮”技巧!1、巧剥核桃在砸核桃前对核桃稍加处理。
先把核桃放进蒸锅里,开火,水开后蒸五分钟。
然后把蒸好的核桃倒进一盆凉水中。
这叫给核桃降温,免得一会儿剥核桃烫手。
泡一会儿,看看结果吧。
(砸。
剥)还是个个完整。
原来呀核桃壳有一些缝隙,在蒸的时候,水蒸汽进入了里面,里面的果仁遇水,硬度降低,而延展性增强。
所以再敲击的时候,变软的果仁就不易碎了。
2、巧剥栗子皮在栗子的凹面中心点的位置上,用拇指横向捏一下,上面就会有一个小小的口,两手在口的两侧上下用力,这个外壳就打开了一些。
外壳去了,现在就该去里面的硬皮了,把剥好壳的栗子放进这个碗中,倒入开水和盐,盖盖焖5分钟,打开之后皮就好剥了。
其中原理就是栗子的果仁和果皮之间有纤维连接,中间空隙很小,只有离子物质才能进入,将它们分离开。
而清水中离子物质微乎其微,而盐可以完全溶于水,它的构成成分钠离子和氯离子能够进入果仁和果肉之间把它们分开。
3、巧剥虾皮虾无论大与小,一般都是七节。
我们就在这节上做文章,找到第二节和第三节,两个手把它们抠开,再一拉,两边的虾皮就全都下来了。
这和虾的身体结构有关,二三节正好是虾的腰部,这里的肌肉最有力,连接部位也相对较薄,外皮也比较结实。
所以在这个部位用力,一拉,其余的皮就会下来了。
4、巧剥柚子皮剥柚子皮之前,先把柚子在桌子上揉,揉好以后,把柚子从中间切开。
由于柚子揉过之后肉和果皮连接的纤维给破坏了,所以只要一剜就剜出来了。
如果只吃了一半想保存另一半,只要把刚才剥下的完整的柚子皮扣在剩下的半个柚子上就行了。
5、巧剥鱿鱼皮先在水里放些白醋,然后把鱿鱼在水中泡十分钟,之后取出鱿鱼。
在鱿鱼背上的中间部分划一个“十”字,一手捏住鱿鱼头,一手扯住十字打开的口的一边,一撕,鱿鱼的皮就会下来一大片。
这是什么道理呢,其实鱿鱼的表皮和肌肉之间有一层结蒂组织。
把鱿鱼放进醋水里,结蒂组织的胶原蛋白就会和醋发生反应,变成了动物胶,于是结蒂组织的连接功能就被破坏了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
----------------<小A分>----------------
一、概论
壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳(强壳)两种
"UPX" "ASPCAK" "TELOCK" "PELITE" "NSPACK(北斗)" ... "ARMADILLO" "ASPROTECT" "ACPROTECT" "EPE(王)" "SVKP" ...
顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。
当然加密壳的保护能力要强得多!
-----------<小A分割线>-------------
二、工具的认识
OllyDBG ring3 shell层级别的动态编译工具、
PEid、
ImportREC、
LordPE、
softIce ring0级别调试工具
-------------<小A分割>-------------------
三、常见手动脱壳方法
预备知识
1.PUSHAD (入栈/压栈)代表程序的入口点,
2.POPAD (弹栈/出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近
3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。
------------<小A分割线>--------------------
方法一:单步跟踪法
1.用OD载入,点“不分析代码!”
2.单步向下跟踪F8,实现向下的跳。
也就是说向上的跳不让其实现!(通过F4)
3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)
4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!
5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP
6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入
7.一般有很大的跳转(大跨段),比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN 的一般很快就会到程序的OEP。
近CALL F7 远CALL F8
Btw:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,
继续F8单步跟踪。
一般情况下可以轻松到达OEP!
------------<小A分割线>----------------------
方法二:ESP定律法
ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)
1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。
(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)
2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!
3.选中下断的地址,断点--->硬件访--->WORD断点。
4.按一下F9运行程序,接着删除硬件访问断点直接来到了跳转处,按下F8,到达程序OEP。
------------<小A分割线>-----------------------
方法三:两次内存镜像法
1:用OD打开软件!
2:点击选项——调试选项——异常,把里面的忽略全部√上!CTRL+F2重载下程序!
3:按ALT+M,打开内存镜象,找到程序的第一个.rsrc 资源.按F2下断点,然后按SHIFT+F9运行到断点,接着再按ALT+M,打开内存镜象,找到程序的第一
个.rsrc.上面的.CODE(也就是 00401000处),按F2下断点!然后按SHIFT+F9(或者是在没异常情况下按F9),直接到达程序OEP!
----------------<小A分割线>--------------------
方法四:一步到达OEP
1.开始按Ctrl+F,输入:popad(只适合少数壳,包括UPX,ASPACK壳),然后按下F2,F9运行到此处
2.来到大跳转处,点下F8,到达OEP!
方法五:最后一次异常法
1:用OD打开软件
2:点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序
3:一开始程序就是一个跳转,在这里我们按SHIFT+F9,直到程序运行,记下从开始按SHIFT+F9到程序运行的次数m!
4:CTRL+F2重载程序,按SHIFT+F9(这次按的次数为程序运行的次数m-1次)5:在OD的右下角我们看见有一个"SE 句柄",这时我们按CTRL+G,输入SE 句柄前的地址!
6:按F2下断点!然后按SHIFT+F9来到断点处!
7:去掉断点,按F8慢慢向下走!
8:到达程序的OEP!
-----------<小A分割线>--------------------
方法六:模拟跟踪法
1:先试运行,跟踪一下程序,看有没有SEH暗桩之类
2:ALT+M打开内存镜像,找到(包含=SFX,imports,relocations)
内存镜像,项目 30
地址=0054B000
大小=00002000 (8192.)
Owner=check 00400000
区段=.aspack
包含=SFX,imports,relocations
类型=Imag 01001002
访问=R
初始访问=RWE
3:地址为0054B000,如是我们在命令行输入tc eip<0054B000,回车,正在跟踪ing。
Btw:大家在使用这个方法的时候,要理解他是要在怎么样的情况下才可以使用---------------<小A分割线>---------------------
软件破解常用汇编指令
cmp a,b // 比较a与b
mov a,b // 把b值送给a值,使a=b
ret // 返回主程序
nop //无作用,英文(no operation)简写,意思“do nothing”(机器码90)
(ultraedit打开编辑exe文件看到90相当汇编语句的nop)
call // 调用子程序,子程序以ret结尾
je或jz // 相等则跳(机器码是74或84)
jne或jnz // 不相等则跳(机器码是75或85)jmp // 无条件跳(机器码是EB)
jb // 若小于则跳
ja // 若大于则跳
jg // 若大于则跳
jge // 若大于等于则跳
jl // 若小于则跳
pop xxx // xxx出栈
push xxx // xxx压栈
-------------<小A分割>----------------------------
jmp ;无条件跳转指哪飞哪一些杂志中说的直飞光明顶,指的就
是它了~光明顶一般指爆破地址根据条件跳转的指令:
JE ;等于则跳转
JNE ;不等于则跳转
JZ ;为0 则跳转
JNZ ;不为0 则跳转
JS ;为负则跳转
JNS ;不为负则跳转
JC ;进位则跳转
JNC ;不进位则跳转
JO ;溢出则跳转
JNO ;不溢出则跳转
JA ;无符号大于则跳转
JNA ;无符号不大于则跳转
JAE ;无符号大于等于则跳转JNAE ;无符号不大于等于则跳转JG ;有符号大于则跳转
JNG ;有符号不大于则跳转
JGE ;有符号大于等于则跳转JNGE ;有符号不大于等于则跳转JB ;无符号小于则跳转
JNB ;无符号不小于则跳转
JBE ;无符号小于等于则跳转JNBE ;无符号不小于等于则跳转JL ;有符号小于则跳转
JNL ;有符号不小于则跳转
JLE ;有符号小于等于则跳转
JNLE ;有符号不小于等于则跳转
JP ;奇偶位置位则跳转
JNP ;奇偶位清除则跳转
JPE ;奇偶位相等则跳转
JPO ;奇偶位不等则跳转
我们实际用到的最常用的只有 jmp、 je、 jne、 jz 、jnz 而已所以只要清楚这5个跳转的条件即可,别的那些了解下就好了
下面开始说传递跟比较指令:
传递指令:
mov
比较指令:
Cmp
例:
mov eax,1
mov ecx,eax
cmp ecx,eax //这个就是标志位
我们已知eax跟ecx都是1
那就符合je的跳转条件。