穿山甲标准双进程的简单脱法

编译的特征与识别 0x00: 软件加壳就和通信加密一样,如ssl,是不想赤裸的站在别人面前,但通常情况下这只是增加了攻击的难度,并没有避免被脱掉衣服的情况。对于脱衣服的人来说,这衣服是纽扣的还是拉链的就特别的重要,纽扣还没见过能拉掉的的。但不管你怎么加壳,最终还是要被还原出来执行的。闲话不说,进入正题,先在此总结编译器的特征,编译器的特征就像是内衣最后的遮掩,把内衣完全那啥才叫脱完衣服。只有以编译器的特征才能识别 阅读详情
穿山甲标准双进程的简单脱法
【目     标】:Word Cleaner v2.0
【工     具】:Olydbg1.1(diy版)、LORDPE、ImportREC1.6F
【任     务】:当然是脱壳了
【操作平台】:WINXP pro sp1
【作     者】:loveboom[DFCG][FCG]
【相关链接】: www.wordcleaner.com
【简要说明】:这是我第一次脱ARM的壳,如有什么不足之处,还请各位老大指教一二。
今天刚好有点时间,去EXEtools那里转了一下,发现牛人Lownoise写一篇关于ARM的文章,于是下了看看,看完后感觉太复杂了,所以自己根据以前牛人们写的文章,我也就学了这么一招。
【详细过程】:
设置:忽略全部异常,并加上C000001E这个异常。
开工的说:
载入后停在这里
004F0000 >  60              PUSHAD               ;EP
004F0001    E8 00000000     CALL wordclea.004F0006
004F0006    5D              POP EBP
004F0007    50              PUSH EAX
现在下断bp OpenMutexA,并运行程序,这样会停在OpenMutexA的入口处
77E62391 >  55              PUSH EBP
77E62392    8BEC            MOV EBP,ESP
77E62394    51              PUSH ECX
停下后取消断点,CODEBASE段找个地方写上几句(默认imgbase为400000),我选择的是401000,于是乎写了这么几句:
00401000    60              PUSHAD
00401001    9C              PUSHFD
00401002    68 C8FB1200     PUSH 12FBC8                              ; ASCII "5D4::DAA2FD56DE"
00401007    33C0            XOR EAX,EAX
00401009    50              PUSH EAX
0040100A    50              PUSH EAX
0040100B    E8 B5A6A577     CALL kernel32.CreateMutexA
00401010    9D              POPFD
00401011    61              POPAD
00401012  - E9 7A13A677     JMP kernel32.OpenMutexA
00401017    90              NOP
注意00401002那行那个值是哪里的呢,看看堆栈吧。对,就是堆栈里的那个值。
0012F588   004D4FC2  /CALL to OpenMutexA from wordclea.004D4FBC
0012F58C   001F0001  |Access = 1F0001
0012F590   00000000  |Inheritable = FALSE
0012F594   0012FBC8  /MutexName = "5D4::DAA2FD56DE"
写完后按Ctrl+*重新定位开始处为401000,定位后,先别急着运行,我们先下HE GetModuleHandleA,下断完毕后,按F9飞几次,飞的过程注意一下堆栈的变化。
0012DAC8   004D76D8  /CALL to GetModuleHandleA from wordclea.004D76D2
0012DACC   00000000  /pModule = NULL
……
0012BEB8   00E56714  /CALL to GetModuleHandleA from 00E5670E         ;第十五次F9后停在这里(指堆栈)
0012BEBC   0012BFF4  /pModule = "advapi32.dll"
最后一次在这里:
0012C144   00E6E3B0  /CALL to GetModuleHandleA from 00E6E3AA
0012C148   00000000  /pModule = NULL
到这里之后,先HD GetModuleHandleA去除硬件断点,去除后,ALT+F9执行到返回。
00E6E3B0    3985 BCE9FFFF   CMP DWORD PTR SS:[EBP-1644],EAX          ; wordclea.00400000
00E6E3B6    75 0F           JNZ SHORT 00E6E3C7
00E6E3B8    C785 B8E9FFFF 0>MOV DWORD PTR SS:[EBP-1648],0E80200
00E6E3C2    E9 C4000000     JMP 00E6E48B
00E6E3C7    83A5 90E7FFFF 0>AND DWORD PTR SS:[EBP-1870],0
00E6E3CE    C785 8CE7FFFF 0>MOV DWORD PTR SS:[EBP-1874],0E80800
00E6E3D8    EB 1C           JMP SHORT 00E6E3F6
00E6E3DA    8B85 8CE7FFFF   MOV EAX,DWORD PTR SS:[EBP-1874]
00E6E3E0    83C0 0C         ADD EAX,0C
00E6E3E3    8985 8CE7FFFF   MOV DWORD PTR SS:[EBP-1874],EAX
00E6E3E9    8B85 90E7FFFF   MOV EAX,DWORD PTR SS:[EBP-1870]
00E6E3EF    40              INC EAX
00E6E3F0    8985 90E7FFFF   MOV DWORD PTR SS:[EBP-1870],EAX
00E6E3F6    8B85 8CE7FFFF   MOV EAX,DWORD PTR SS:[EBP-1874]
00E6E3FC    8338 00         CMP DWORD PTR DS:[EAX],0           ;****
00E6E3FF    0F84 86000000   JE 00E6E48B
00E6E405    8B85 8CE7FFFF   MOV EAX,DWORD PTR SS:[EBP-1874]
00E6E40B    8B40 08         MOV EAX,DWORD PTR DS:[EAX+8]
返回后,按F4直接执行到*的这一行,到达目的地后,修改[eax]的值为0,这样就可以跳过IAT的加密。修改完后,在CODE段F2下断,之后当然是运行了,运行的结果就是直接到OEP,不错吧。
Memory map, item 23
 Address=00401000
 Size=000C9000 (823296.)
 Owner=wordclea 00400000
 Section=.text
 Type=Imag 01001002
 Access=R
 Initial access=RWE
到达目的地:
00403608    68 F4414100     PUSH wordclea.004141F4
0040360D    E8 EEFFFFFF     CALL wordclea.00403600                   ; JMP to MSVBVM60.ThunRTMain
赶快DUMP FULL吧,dump完后,用IMP来CUT一些无效的东东。如果是WIN2K好像不用FIX DUMP       也可以运行哦。好了脱壳完毕!闪人。
 
Warning: 在调试的时候记住去掉讨厌的家伙( 去掉病毒防火墙瑞星) ,要不死的难看! L
 
 
 
 
Greetz:
 Fly.Jingulong,yock,tDasm.David.ahao.UFO(brother).alan(sister).all of my friends and you!
 
By loveboom[DFCG][FCG]
Email:bmd2chen@tom.com
 
实例分析双进程保护及其实现 考前2个星期都一直在搞这个,然后考试周考的死去活来,全部忘光了。最近瞅了一下,发现远远没我想象的那么简单,双进程保护如果用的好的话,SMC+调试进程与被调试进程处理不同异常,的确能在很大程度上限制动态调试。       《加密与解密》上写的很简单,只是大体讲了一下思路,差不多步骤如下         1.加载或者附加一个正在运行的进程(可以用createprocess创建或者用debugacti 阅读详情

相关推荐

逆向工程核心原理学习笔记(一):寻找程序的主函数(Main)

首先编译release版本的helloword程序,代码如下: 编译完成,拖进OD,结果如图。 程序断在了004011A1 这个地址,这个就是EntryPoint. 这个地址调用了004022DF这个地址的函数,F7跟进函数,如图。 并没有什么有用的信息让我们查找Main函数,然后Ctrl+F9调到函数结尾,retn. 然后F8跳出,到达了

killcoco的小窝 4148

第十四课 穿山甲壳的单进程标准脱法一

第十四课穿山甲壳的单进程标准脱法一 今天开始进入我们加密壳脱壳环节。 一,关于Armadillo壳: Armadillo也称穿山甲,是一款应用面较广的壳。可以运用各种手段来保护你的软件,同时也可以为软件加上种种限制,包括时间、次数,启动画面等等!很多商用软件采用其加壳。Armadillo对外发行时有Public,Custom两个版本。...

weixin_30814319的博客 500

ImportREC v1.6F Fix版

ImportREC v1.6F Fix版 可以手工重建Import表,脱壳必备! ImportREC v1.6F fix这个版本修正了部分API不能跨平台的bug:

2010.10.02_33vc_Armadillo3.78带Key双进程手动脱壳

http://www.33vc.com/index.php/archives/2580 Armadillo3.78不带key的双进程脱壳,以前学习过,完全就是按一个套路。 带key的没遇到过。这里转载一下,其实过程挺简单。照着做就行。 Armadillo高版本的我没试过。下面是转载: 拿到一HTTPS的暴力破解软件,带一个和机器有关的合法注册码,只能在别的某一台机器码为95

记录点滴 3242

脱壳穿山甲壳教程

这是一个好实用的拖穿山甲壳的教程 里面详细地解析了如何脱穿山甲壳 是脱壳学习的必备工具

importREC V1.6F 汉化版

importREC V1.6F 汉化版 aaaaaaaaaasssssssss

VB程序的脱壳技巧

自己来解决吧,也许能搞出个自创的方法,叫什么Monster脱壳法。 在这里大家必须了解一引些小知识。 VB程序的启动方式:每个VB程序通常都会调用到许多的API,但是其中有一个API是雷 打不动的,这就是我们都知道的ThunRTMain函数。VB程序在运行时,都会首先调用 ThunRTMain函数,ThunRTMain函数将会为程序初始化进程,并获取进程ID等做一些

积累点滴,保持自我 4680

ImportREC.v1.6

非常好用的一款软件

kernel32.FatalExit

前言有个cm, 运行起来后, 会随机的启动自己的副本, 然后自己退出, 对抗调试. 看见程序起来了, 但是调试器却终止了, 从调用链看不到在用户领空中哪里调用了使程序退出的API. 最后F8,F7,F8, 看到调用了FatalExit. 总结下, 如何确定用户领空调用退出API的点.记录调试器终止时, 停在ntdll.KiFastSystemCallRet7C92E4F4 ntdl

博客标题不能为空 944

穿山甲通用脱壳工具黄金中文版(ArmaG3ddon )

穿山甲黄金中文版,脱穿山甲的壳,ArmaG3ddon_cn1.8

【计算机科学导论实验】加法图灵机模拟 题解

本文提供计算机科学导论课程“图灵机加法器”实验的个人思路,仅供参考。

Chavapa's blog 2579

天草脱壳视频学习笔记

天草壳世界学习笔记: 1.OD的查找支持模糊查找 ?? 比如 要查找 E82091FBFFA1B8 可模糊查找:E8??91FBFF??B8 2.OD的插件idaficator 可以支持回滚 就是记录你的操作记录往回走 相当于一个跳转或者CALL以后 可以跳回去看 鼠标左键 ESC 可以回滚上一步 鼠标右键可以回滚下一步 3.StrongOD插件的二进制无空...

weixin_33766805的博客 452

测绘无人船避坑指南:云卓H12Pro遥控器接海康摄像头,从网络设置到RTSP流延迟优化全流程

本文详细解析了测绘无人船视频子系统的优化方案,重点介绍海康威视摄像头与云卓H12Pro遥控器的深度适配流程。从网络设置到RTSP流延迟优化,提供了一套经过实测的低延迟(<200ms)解决方案,适用于复杂水域环境下的测绘任务。

weixin_30415113的博客 627

android双进程守护

应当注意,在启动Activity中分显式和隐式启动两种,显示启动会指定需要启动的Activity的名字,隐式启动则不用。例如Intent(this, xxx.class)是显式启动。简单来说就是,看有没有指定componentName来区分显式和隐式。         另外需要注意的是,指定componentName中应该将包名+类名一起写上,以防不同包名下存在相同的类名的情况!

hangeqq685042的专栏 2239

riscv32-gcc工具链实战:从下载到编译的完整指南

本文提供了一份详尽的riscv32-gcc工具链实战指南,涵盖从官方渠道下载预编译版本、正确选择riscv32-glibc版本、配置环境变量到实战编译的全过程。通过清晰的步骤和避坑指南,帮助开发者快速搭建稳定的RISC-V交叉编译环境,并成功编译从Hello World到Linux内核的程序。

s3t4u的博客 676

7-1 链式基数排序 (20 分)

7-1 链式基数排序 (20 分) 实现链式基数排序,待排序关键字n满足1≤n≤1000,最大关键字数位≤5。 输入样例: 第一行输入待排序个数n(1≤n≤1000),再输入n个数(n的数位≤5)。 10 278 109 63 930 589 184 505 269 8 83 输出样例: 输出每趟分配-收集后链表中的关键字,趟数为序列中最大值的数位(如样例中930的数位为3),每行结尾有空格。 930 63 83 184 505 278 8 109 589 269 505 8 109 930 63 26

OwemShu的博客 4240

ImportREC输入表重建工具

Import REConstructor可以从杂乱的IAT中重建一个新的Import表(例如加壳软件等),它可以重建Import表的描述符、IAT和所有的ASCII函数名。用它配合手动脱壳,可以脱UPX、CDilla1、PECompact、PKLite32、Shrinker、ASPack, ASProtect等壳。 在运行Import REConstructor之前,必须满足如下条件: 目标文件己

wang010366的专栏 3142

C# 开发 ACS 运动控制系统:从入门到高阶应用实践

起始位置</param>/// <param name="endPos">结束位置</param>/// <param name="maxVelocity">最大速度</param>/// <param name="maxAcceleration">最大加速度</param>/// <param name="maxJerk">最大加加速度

品质生活,极致编程。 2846

CocosCreator接入穿山甲广告1-激励视频

首先进入文档后要先去下载它文档里的sdk,这个压缩包里面含有demo,没有头绪的朋友可以进入他的工程看下,也可在模拟器上运行一下它的demo看下效果。下载完后可以进入他工程下的libs的文件夹里把两个aar文件拖出来,并且在你游戏构建出来的工程里创建一个libs,然后拖进去,如下图: 接下来就是引入你的aar文件,文档中给了代码,但实际上游戏工程不需要自己在引入因为在你的build.gradle...

CC 2万+

FFmpeg 开发(01):FFmpeg 编译和集成

尽管 FFmpeg 功能强大,但是由于其采用的是带有传染性的 LGPL/GPL 开源协议,所以一些大厂基本上都是自己独立开发类似的音视频处理库,甚至在接口和组织模块上模仿 FFmpeg 。

字节流动 1万+

Copilot在游戏开发中的应用:Unity脚本自动生成实践

2021年GitHub Copilot的发布,为代码自动生成带来了革命性突破。作为基于GPT模型训练的AI辅助编程工具,Copilot能根据注释、函数名、代码上下文,实时生成符合语法和逻辑的代码片段,甚至完整脚本。减少重复劳动:自动生成模板代码(如生命周期、结构),让你专注核心逻辑;降低API学习成本:对Unity特有的组件(RigidbodyAnimator)、类(),Copilot能生成符合最佳实践的调用代码;统一代码风格:通过团队共享提示词模板,让生成的代码符合项目规范;快速原型迭代。

AIGC应用创新大全的博客 1619

ASPROTECT 2.x 脱壳系列(一)

ASPROTECT 2.x 脱壳系列(一)【目    标】:DVD Fab Gold 2.9.4.2【工    具】:Olydbg1.1(diy版)、LORDPE、ImportREC1.6F【任    务】:简单的脱壳【操作平台】:Windows XP sp2【作    者】: LOVEBOOM[DFCG][FCG][US]【相关链接】: 自己搜索下【简要说明】: 时间在不断的减少,人越靠近死亡的

loveboom's Reverse Enginering 1万+

如何使用 Python 爬虫获取猫眼电影数据:电影评分与评论分析

随着互联网的快速发展,越来越多的人开始使用各种在线平台来了解电影信息,猫眼电影作为一个非常流行的在线电影票务平台,提供了详细的电影评分、评论和票房数据。本篇博客将详细介绍如何使用 Python 爬虫技术获取猫眼电影平台上的电影数据,重点关注电影评分和用户评论的爬取,分析其背后的数据处理和反爬虫技术。如果你对数据分析、电影评论分析等话题感兴趣,可以根据本文的示例进一步深入挖掘更多的数据,为决策提供支持,或为电影产业的相关研究提供有价值的分析依据。有些猫眼电影的页面数据是动态加载的,使用。

2201_76125261的博客 1623
上一篇: Encryptpe 2003.518
下一篇: forgot/hexer变形telock
bmd2chen
博客等级 码龄23年 34粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值