zr3411 发表于 2019-7-25 10:12

单纯的脱壳(非挂非伸手党)技术向求助 大佬救我!!!SOS!SOS! PECompact 壳

本帖最后由 zr3411 于 2019-7-30 21:49 编辑

这几天一直在看ximo老师的基础脱壳教程(这几天刚学)
跟着教程走,大部分步骤上不会出现问题.
                                                                   ( 纯路人,ximo老师 NB )
今天我在52发现一款软件刚好是PECompact的壳
手痒就下载下来脱壳

拉入OD
ESP定律走起来

JMP 一个闪到我老腰的大跳 按照我学到的知识 这不就是下一步到了OEP了嘛!!!!!!{:1_918:}
                                 马上跟过去!

我当场傻眼了,我是谁,我在哪,我在做啥子! 和我学到的入口点不在一个调调上啊喂!
我继续单步走下去,马上程序就跑飞了.
好嘛,我又重新换了几种脱壳方式,单步啊,2次内存镜像啊.都会来到这里.
那我就脱呗,死马当活马医了!
脱完之后不能运行或者报错.接着我又跟着修复.(教程教的那种)
这回不报错了,双击根本没用,


我在想 是不是有自校验的问题.(自校验的课程只看了,还没手动去解过所有 暂时不会)
或者是我根本没脱壳.或者没脱干净

然后我用了PECompact脱壳工具脱壳,
脱完壳之后准备拿来做对比,

运行脱壳后的程序(命名为111.exe)---------
----------------
检查是否脱壳----EN 脱得光秃秃的.

正常运行一会儿   然后出弹窗
此软件被破坏 需要重新下载之类的(感觉是自校验)


111.exe 拖进OD进入401000   智能中文
----------------
好多乱码啊,我要的字符串呢. 木有啊.


技术不够,求助来凑!!我虽然不会,但是有大牛啊.
大牛救我.
在我呼救大牛的同时,我把我自己手动(脱壳的EXE)文件丢进了OD里面


进入401000智能中文

脱壳软件还没我自己手脱好使呢!!!!!!!起码还能搜索到中文啊喂!!!!


那么问题来了, 我为什么这么懵逼啊.{:1_908:}{:1_908:}{:1_908:}
                                                   {:1_919:}{:1_919:}{:1_919:}{:1_919:}-------------------   大牛,老师们,轻喷 (小声BB)------------------{:1_919:}{:1_919:}{:1_919:}{:1_919:}
软件是这个帖子过来的 https://www.52pojie.cn/thread-870964-1-1.html


这个是我自己手脱的EXE执行程序链接:https://pan.baidu.com/s/12Fl-9PqKVcyDAyxKTF4MeA 提取码:wkev
                     我不是伸手党, 我只是想知道这个和我理解的入口为何不同 以及 上文提到的一系列思考{:1_923:}
                                       此贴若有违规,可删,别扣分 刚注册不容易:loveliness::loveliness::loveliness:
                                                                                                             回头我绝对不说 是看→→→→ximo老师←←←←←←视频学的脱壳

                                                                                                            
                                                                                                                        
                                                                                                                                       我是不是来错地方了?
                                                                                                                     


-------------------------------------------------------根据#5楼 热心市民提供意见,在JMP 大跳的时候 把F8改成F7 第二次脱壳调试------------------------------------------------------------



再次载入OD再次找到了那个JMP大跳的地方分别进行了F7 F8 两个不同的尝试

F8 图

---------------------------
F7图


我发现两个效果都是到了同一个地方


-----------------------------------


那么我继续F8单步往下走    往上跳F4 不让它实现    往下跳让它实现原则
(什么重要call 之类的 我分析不出来)


继续截图从刚才那个大跳之后 出现了一个 pushad接着一个JMP下跳 让ta实现



然后出现了这个call如果这个call F8 就会运行一段时间 然后自己停在一个异常处




异常处截图       异常处停下来继续F8



跳到一个不知道的地方然后内存报错了.{:1_889:}


--------------------------------------------------------------------第二次脱壳失败{:300_966:}我想刚才pushad 的时候 ctrl+F 搜popad 能不能找到靠近OEP 的地方呢----------------------------------------------


果然跳到了一个地方    当我滚轮向上滑动的时候,代码突然变了.    我想起了今天看的一个视频.待我回去研究研究 怎么让代码不自动变.

--------------------------------------------------------------------那个教程没找到,只有多跑几次,多用几次不同的跟进--------------------------------------------------------------


发现不管哪一种 ( 单步,exp定律,两次内存,最后一次异常 包括ctrl+F popad 脱壳手段   最终都会来到这个位置




既然所有的手段都会来到这个位置,那么我想这个跳转肯定非常关键.或者某个判断非常关键.可惜我不会呀.

有大腿能提供思路吗.
我的思路就这么多啦{:300_953:}

难道我始终只是躺地上喊666的咸鱼嘛{:1_900:}{:1_900:}{:1_900:}

wu0o0pj 发表于 2019-7-29 14:23



006651C8 >B8 A06CE500   mov eax,朗读女.00E56CA0                     ; 载入OD后停在此处
006651CD    50            push eax
006651CE    64:FF35 0000000>push dword ptr fs:
006651D5    64:8925 0000000>mov dword ptr fs:,esp
006651DC    33C0            xor eax,eax
006651DE    8908            mov dword ptr ds:,ecx               ; F8后进入系统领空
006651E0    50            push eax
006651E1    45            inc ebp



F8 运行了几次后,会进入系统领空,此时 ALT+F9,返回到用户领空
00E56CC3    B8 255AE5F0   mov eax,0xF0E55A25                     ; 从系统领空返回到用户领空时停在此处
00E56CC8    64:8F05 0000000>pop dword ptr fs:                     ; 0012FFE0
00E56CCF    83C4 04         add esp,0x4
00E56CD2    55            push ebp
00E56CD3    53            push ebx
00E56CD4    51            push ecx
00E56CD5    57            push edi                                 ; 朗读女.00637260



鼠标滚轮一直往下,看到 jmp eax,此处是大跳,F7 跟进
00E56D5E    5F            pop edi                                  ; kernel32.7C817077
00E56D5F    59            pop ecx                                  ; kernel32.7C817077
00E56D60    5B            pop ebx                                  ; kernel32.7C817077
00E56D61    5D            pop ebp                                  ; kernel32.7C817077
00E56D62- FFE0            jmp eax                                  ; 大跳,F7跟进
00E56D64    c8 5166 00      enter 0x6651,0x0
00E56D68    0000            add byte ptr ds:,al
00E56D6A    0000            add byte ptr ds:,al



F7 跟进后会发现,回到了最开始的地方,但代码已发生变化
006651C8 > /EB 0F         jmp short 朗读女.006651D9            ; 载入OD后停在此处 / 回到了开始的地方,而代码发生了变化
006651CA   |0E            push cs
006651CB   |f4            hlt
006651CC   |A2 64F04509   mov byte ptr ds:,al
006651D1   |6A 6E         push 0x6E
006651D3   |5D            pop ebp                           ; kernel32.7C817077
006651D4   |4B            dec ebx
006651D5   |3e:5c         pop esp
006651D7   |8D0C60          lea ecx,dword ptr ds:
006651DA    EB 2E         jmp short 朗读女.0066520A



F8 一次后,能看到 pushad,用 ESP 定律
006651D9    60            pushad                              ; ESP 定律
006651DA    EB 2E         jmp short 朗读女.0066520A
006651DC    0B3A            or edi,dword ptr ds:
006651DE    0E            push cs                           ; F8后进入系统领空
006651DF    9E            sahf
006651E0    37            aaa



00665406    F8            clc                                 ; 下硬件断点后,运行,停在此处
00665407    EB 25         jmp short 朗读女.0066542E
00665409    AD            lods dword ptr ds:
0066540A    D8E0            fsub st,st
0066540C    6376 15         arpl word ptr ds:,si
0066540F    A0 FC61736E   mov al,byte ptr ds:
00665414    18BD 8FC45779   sbb byte ptr ss:,bh



按几次 F8 后,最终来到 OEP
00614B33    55            push ebp                            ; 此处就是 OEP
00614B34    8BEC            mov ebp,esp
00614B36    6A FF         push -0x1
00614B38    68 907DC700   push 朗读女.00C77D90
00614B3D    68 84816100   push 朗读女.00618184
00614B42    64:A1 00000000mov eax,dword ptr fs:
00614B48    50            push eax                            ; 朗读女.<ModuleEntryPoint>
00614B49    64:8925 0000000>mov dword ptr fs:,esp



之后就是 lordPE dump, ImportREC 修复,程序为易语言编写

运行修复好的程序,能够运行,但提示 文件损坏,重新下载,说明有自校验,中文查找,跳过即可


================================

ps: 论坛贴图方式改了吗,我怎么只能上传,不能贴到帖子里



zr3411 发表于 2019-7-25 10:59

本帖最后由 zr3411 于 2019-7-25 11:49 编辑

我的名字叫小枫 发表于 2019-7-25 10:56
这个壳属于压缩壳,算起来还是比较简单的。
第一个图调到jmp eax那里之后
就是一堆混淆花指令,f7步入,f ...
感谢:lol, 常见的语言OEP入口 我都有文本备份的, 每次大跳转我都会拿出来比较.以便增加熟悉感.,
我这就去试试
--------------------------
结果 失败了

闲着就晕 发表于 2019-7-25 10:40

我也是刚注册,刚看完第一个视频。正在学习使用第一个upx脱壳,感觉win10和xp不一样,准备搞个xp系统,或者虚拟机。

zr3411 发表于 2019-7-25 10:44

闲着就晕 发表于 2019-7-25 10:40
我也是刚注册,刚看完第一个视频。正在学习使用第一个upx脱壳,感觉win10和xp不一样,准备搞个xp系统,或者 ...

还是需要虚拟机的,虽然视频比较有年代感了.但是学习步骤可以增加见识啊.{:1_918:}

DOUDOUZXL 发表于 2019-7-25 10:54

闲着就晕 发表于 2019-7-25 10:40
我也是刚注册,刚看完第一个视频。正在学习使用第一个upx脱壳,感觉win10和xp不一样,准备搞个xp系统,或者 ...

劝兄弟你赶紧装个虚拟机,在虚拟机里玩耍

我的名字叫小枫 发表于 2019-7-25 10:56

这个壳属于压缩壳,算起来还是比较简单的。
第一个图调到jmp eax那里之后
就是一堆混淆花指令,f7步入,f8的话直接就飞了。
然后在往下面跟几步就到了。
先熟悉几种常见的语言的oep入口。

痴迷的逍遥 发表于 2019-7-25 12:31

也是才学不久,看你的帖子感觉咋俩水平差不多哈

zr3411 发表于 2019-7-25 12:33

痴迷的逍遥 发表于 2019-7-25 12:31
也是才学不久,看你的帖子感觉咋俩水平差不多哈

兄嘚 看我注册时间.多看 多学 多问就对了

zr3411 发表于 2019-7-26 12:58

有大牛指点一下吗

闲着就晕 发表于 2019-7-26 15:14

DOUDOUZXL 发表于 2019-7-25 10:54
劝兄弟你赶紧装个虚拟机,在虚拟机里玩耍

好的? 周末就装一个,确实需要虚拟机了。
页: [1] 2
查看完整版本: 单纯的脱壳(非挂非伸手党)技术向求助 大佬救我!!!SOS!SOS! PECompact 壳