单纯的脱壳(非挂非伸手党)技术向求助 大佬救我!!!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:}
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 11:49 编辑
我的名字叫小枫 发表于 2019-7-25 10:56
这个壳属于压缩壳,算起来还是比较简单的。
第一个图调到jmp eax那里之后
就是一堆混淆花指令,f7步入,f ...
感谢:lol, 常见的语言OEP入口 我都有文本备份的, 每次大跳转我都会拿出来比较.以便增加熟悉感.,
我这就去试试
--------------------------
结果 失败了 我也是刚注册,刚看完第一个视频。正在学习使用第一个upx脱壳,感觉win10和xp不一样,准备搞个xp系统,或者虚拟机。 闲着就晕 发表于 2019-7-25 10:40
我也是刚注册,刚看完第一个视频。正在学习使用第一个upx脱壳,感觉win10和xp不一样,准备搞个xp系统,或者 ...
还是需要虚拟机的,虽然视频比较有年代感了.但是学习步骤可以增加见识啊.{:1_918:} 闲着就晕 发表于 2019-7-25 10:40
我也是刚注册,刚看完第一个视频。正在学习使用第一个upx脱壳,感觉win10和xp不一样,准备搞个xp系统,或者 ...
劝兄弟你赶紧装个虚拟机,在虚拟机里玩耍
这个壳属于压缩壳,算起来还是比较简单的。
第一个图调到jmp eax那里之后
就是一堆混淆花指令,f7步入,f8的话直接就飞了。
然后在往下面跟几步就到了。
先熟悉几种常见的语言的oep入口。 也是才学不久,看你的帖子感觉咋俩水平差不多哈 痴迷的逍遥 发表于 2019-7-25 12:31
也是才学不久,看你的帖子感觉咋俩水平差不多哈
兄嘚 看我注册时间.多看 多学 多问就对了 有大牛指点一下吗 DOUDOUZXL 发表于 2019-7-25 10:54
劝兄弟你赶紧装个虚拟机,在虚拟机里玩耍
好的? 周末就装一个,确实需要虚拟机了。
页:
[1]
2