脱壳经验(一)--脱壳感想

教程倒没有,说一下脱壳感想吧!

我们拿到一个壳,如想深入了解,非深入跟踪不可,那是没什么捷径可言的!你要付出的是大量的时间和思考分析,如果不能做到,请放弃吧,也是对自己的身心的一种尊重和关心!

如果你是一个期代脱壳tips的人,做起脱壳来很容易感到空虚的...

(工具以Ollydbg为例)
遇上一个陌生壳,请不要太慌张,做一些简单的分析先,明确一下壳的类型、级别。就 saft103 说说,虽然脱壳论坛已经有介绍和一些“壳霸”对其手到拿来,但我们可以先抛开这些道听途说,认真地跟踪一下(可以参考一下我的一篇梦游之说)。

先运行这个壳,浏览一下系统活动进程,我们初次发现它是个单进程,用Ollydbg附加一下这个“单进程”,发现不行,原来它是“明花有主”的,为了找出“主人”,我们要从头展开进一下跟踪(因为我们已经假设自己对壳什么都不认识)。

我们会有一些结论,花指令不耐用(白话:挜碴),异常发生都是顺序向下走的,于是我们如果再遇到同样类似的情况(最后到OEP指令前,我们可以遇到同样的
情况,不用每个异常都Into),就可以不一一跟踪了,用鼠标拉动滚动条向下,留意可疑的地方,在这些地方用上下键查看指令,如果找到“零佘不同”--没
法说清楚是一种感觉来的,直接在那里下断,应该是关键的执行或解码!我们可以发现时间反跟踪做得比较单一呆版,只要补丁其相关的 API
就能杀它个干干净净;

在“梦游之说”中,我们发现 壳
会实现注入功能(这是我们发现壳的第一个特色,利用注入依附系统服务程序,使调试难度增大,一般来说我们不大可能调试系统服务程序的线程,所以父进程稳居
“教宗”地位,神圣而不可侵犯),感觉如同“金蝉脱壳”般,而且相关的操作我们都能一目了然,如果这时这个是你陌生的认识,赶快学一把(偶是,就翻了一下
API手册和DelphiChm手册,幸好能找到,就认识认识)!父进程退出设计成压入堆栈运行,虽然不是什么新鲜事,但是个妙的动作来的,很干净地了断
父进程,值得学习!

好了,明确了壳的动作,我们要自己改变其运行父进程。在父进程运行中,同样会有反跟踪的,自己留意吧。首先,我们要问我们自己监视父进程要做什么监视?我
们想出来再跟踪:父进程必定要运行子进程,子进程哪来?是同一个祖宗的呀!但它会走不一样的路成长。它的成长是父进程指引的,所以我们要获取父进程的“指
引”,GetContext和SetContext是父进程指引子进程的主要方式来的,当然你是可以从中获得“指引”的方向;另外父进程也会负责帮子进程
初始化和解码,自己应该想到 WriteProcessMemory 和 ReadProcessMemory
!通过分析父进程代码和跟踪我们可以发现,父进程只负责一次初始化和一次解码,其余的只监视子进程有否自行问“长短”。(其实父进程和子进程之间的联系是
很清晰的,只要你的代码分析能力很强,就可以少用动态跟踪,偶不行,只能在它们之间来回奔走,开了两个Ollydbg)

子进程也有对父进程的检测,发现父亲有“外遇”,就会宣告“脱离父子关系”。子进程会遇上车祸“非法驾驶”,造成“失血过多”,也会要求索取父进程的 DNA ,如果 DNA 不符,就会造成“输血失误”,子进程就会“误服哀哉”!

如果上面没有问题,子进程就继续生活下去,脱态换骨[解码],在长大前会不断“长毛”[iat增肥加密计划],最后就Show出成年后的 StolenCode Show,再之后就在父进程的无形庇护下独立生活下去。

看完了壳的ShowTime后,我们应该心里有数,脱壳已经不是Impassable,我会想到直跑子进程一直到脱壳,这时我又想到了“壳
魔”fxyang的话,再回头看看它先前的脚本,哈哈,原来我们最终都走差不多的路...,学脱壳做脱壳不是一种炫耀,而是从中找出自己的方向,不认识的
不明白的要多问自己为什么,我经常都是自己解决的,印象深刻,不必去死记什么bp 这个,CD那个B之类的,遇到新奇趣怪的的要 Mark in
your Memory(脑和存储File)。

这个壳给我的感觉是温柔了点,好些地方是做得呆板单一,比如Game
Over的地方做得太认真,一点也不含糊迷惑,但都要有一定的工作量才能脱好的,另外资源部分方面做了隐藏,解压后才出现,又再做毛手毛脚,别忘了要
Dump完整!如果把这个壳的每一个点都照出来,那样脱壳就太没意思了,犹如行尸走肉,永远得不到脱壳的真正乐趣(或者你会以脱壳破解某个加壳软件的功能
限制为乐趣,但我说的不是这个)!

如果不幸遇上变态壳,呵呵,不要死顶,Take it Easy,Give up in
some time, some time in
charge!每个人的能力和认识都不同,没必要去跟人比,除非你们有约定,要比就要比自己,比过去,比现在,还是将来...那是你的事!

如果这草稿不幸被列为精华,希望能为你找到自己的脱壳方向--适当要问自己为什么...

脱壳经验(一)--脱壳感想,布布扣,bubuko.com

时间: 2024-08-08 05:37:21

脱壳经验(一)--脱壳感想的相关文章

脱壳经验(二)--如何优化

PE脱壳后,文件长度一般会增大,原因有以下几点: 1.脱壳后,壳的尸体依然存在:2.脱壳后,重新建立了新的Import节.Reloc节等:3.有些加壳程序,将原程序的某些节跟外壳增加的某些节合并后,搬移到了其他位置.4.脱壳时候,因为采用的是dump内存,所以,在内存中对齐的PE镜象一般也会大于原始的PE文件,各个节的dump实际尺寸也会较原始PE文件的实际尺寸大. 解决方案: (1) 脱壳后,将各个有效的节分别转存到临时文件中.如:将“.text节,单独转存到一个text_tem.bin中”,

脱壳->模拟追踪脱壳法原理

目录 模拟追踪脱壳法 一丶模拟追踪 1.1 模拟追踪简介 1.2 模拟追踪法的原理 1.3 网络上的内存镜像法与模拟追踪 二丶调试工具的使用 2.1 x64dbg追踪的使用 2.2 Ollydbg工具的使用 三丶总结 模拟追踪脱壳法 一丶模拟追踪 1.1 模拟追踪简介 模拟追踪 重点是模拟两字, 含义就是程序代替人手工的F7(步进) 或者 F8(步过) 回想我们手工脱壳的时候,最笨的方法就是遇到Call跳过(F8) 如果跑飞就遇到Call F7 但是往往最笨的方法就是最好用的方法. 原理也说过.

【笔记】单步跟踪法与UPX的脱壳理解

用PEiD查壳 UPX v0.89.6 - v1.02 / v1.05 - v1.22    这个是入门的壳,只是一个简单的压缩壳 用Stud_PE查看PE文件头信息 主要是看一下ImageBase的值 00400000,这是一个16进制数.在后面OD载入后,可以用这个值在内存映像中查看PE文件加载到内存后的情况. 还有EntryPoint的值: 0000E8C0 程序入口 OD载入看内存映像 用OD载入,ALT+M打开这个窗口,就可以看到upx.exe程序加载到内存后的映像,主要有四块,但重要

脱壳基础知识入门

现在加解密发展己形成2个分支了,一个就是传统的算法,另一个就是加密壳.越来越多的软件采用了密码学相关算法,现在要做出一个软件注册机己不象前几年那 么容易,这就要求解密者必须要有一定的数学功底和密码学知识,而这些在短时间内是不容易掌握的.除了密码学的应用,越来越多的软件加壳了,因此要求解密者 必须掌握一些脱壳技术,这就使得壳成了解密必须迈过的一个门槛.壳发展到今天,强度越来越高了,将许多人挡在门外,使得大家望壳兴叹.另外,论坛现在两极 分化比较严重,高手讨论的脱壳技术新手看不懂,很多人想学脱壳,但

Apk脱壳圣战之---脱掉“360加固”的壳

一.前言 现在主流的加固平台有:梆梆加固,爱加密,360加固,腾讯加固,在之前的一篇文章中介绍了:如何脱掉"爱加密"的壳,现在这里要脱掉另外一个平台的壳:360加固,因为有了之前的脱壳经验,很多基础知识和准备工作这里就不详细介绍了,为了能够脱掉他家的壳,用一个案例来去360平台进行加固,然后进行脱壳.下面就来开始脱壳: 二.分析360加固的原理 首先拿到加固之后的apk,这里为了方便查看内部信息,先不用dex2jar+jd-gui工具进行分析了,直接使用我们之前分析了源码的一个工具:J

android脱壳之DexExtractor原理分析[zhuan]

http://www.cnblogs.com/jiaoxiake/p/6818786.html内容如下 导语: 上一篇我们分析android脱壳使用对dvmDexFileOpenPartial下断点的原理,使用这种方法脱壳的有2个缺点: 1.  需要动态调试 2.  对抗反调试方案 为了提高工作效率, 我们不希望把宝贵的时间浪费去和加固的安全工程师去做对抗.作为一个高效率的逆向分析师, 笔者是忍不了的,所以我今天给大家带来一种的新的脱壳方法——DexExtractor脱壳法. 资源地址: Dex

android脱壳之DexExtractor原理分析

导语: 上一篇我们分析android脱壳使用对dvmDexFileOpenPartial下断点的原理,使用这种方法脱壳的有2个缺点: 1.  需要动态调试 2.  对抗反调试方案 为了提高工作效率, 我们不希望把宝贵的时间浪费去和加固的安全工程师去做对抗.作为一个高效率的逆向分析师, 笔者是忍不了的,所以我今天给大家带来一种的新的脱壳方法--DexExtractor脱壳法. 资源地址: DexExtractor源码:https://github.com/bunnyblue/DexExtracto

Android通用脱壳工具DexHunter的原理分析和使用说明(二)

本文博客地址:http://blog.csdn.net/qq1084283172/article/details/53715325 前面的博文<Android通用脱壳工具DexHunter的原理分析和使用说明(一)>中已经记录了很多关于DexHunter脱壳工具的脱壳原理和思考的思路问题并没有涉及到DexHunter脱壳工具的代码的分析,今天我就代码分析.理解和DexHunter脱壳工具的使用以及需要注意的地方进行博文的记录. 在阅读DexHunter的代码之前,复习下几个须知: 1>.

病毒加壳技术与脱壳杀毒方法解析【转载】

壳是什么?脱壳又是什么?这是很多经常感到迷惑和经常提出的问题,其实这个问题一点也不幼稚.当你想听说脱壳这个名词并试着去了解的时候,说明你已经在各个安全站点很有了一段日子了.下面,我们进入"壳"的世界吧. 一.金蝉脱壳的故事 我先想讲个故事吧.那就是金蝉脱壳.金蝉脱壳属于三十六计中的混战计.金蝉脱壳的本意是:寒蝉在蜕变时,本体脱离皮壳而走,只留下蝉蜕还挂在枝头.此计用于军事,是指通过伪装摆脱敌人,撤退或转移,以实现我方的战略目标的谋略.稳住对方,撤退或转移,决不是惊慌失措,消极逃跑,而是