一、单步

1.载入PEID查壳

  1. EZIP v1.0

2.载入OD,一上来就是一个大跳转,F8单步一直走

  1. 0040D0BE > $ /E9 jmp Notepad.004102DC ; //入口点
  2. 0040D0C3 . |E9 7C2A0000 jmp Notepad.0040FB44
  3. 0040D0C8 $ |E9 jmp Notepad.0040F4E6
  4. 0040D0CD $ |E9 FF230000 jmp Notepad.0040F4D1
  5. 0040D0D2 . |E9 1E2E0000 jmp Notepad.0040FEF5
  6. 0040D0D7 $ |E9 882E0000 jmp Notepad.0040FF64
  7. 0040D0DC $ |E9 2C250000 jmp Notepad.0040F60D
  1.  

3.基本上这个壳靠F8就可以走完了,除了一个向上跳转的位置在下一行F4,然后继续F8

  1. |. 83C0 |add eax,0x28
  2. |. ECFDFFFF |mov [local.],eax
  3. 0041061A |.^ E9 40FFFFFF \jmp Notepad.0041055F ; //向上跳转的下一行F4
  4. 0041061F |> FFB5 E8FDFFFF push [local.]
  5. |. FF95 D4FCFFFF call [local.]
  6. 0041062B |. 8D85 94FCFFFF lea eax,[local.]
  7. |. push eax

4.找到指向OEP的跳转

  1. |. 5B pop ebx
  2. |. 8BE5 mov esp,ebp
  3. |. 5D pop ebp
  4. |.- FFE0 jmp eax ; //指向OEP的跳转
  5. 0041068A |> 5F pop edi
  6. 0041068B |. 5E pop esi
  7. 0041068C |. 5B pop ebx
  8. 0041068D |. C9 leave
  1.  

5.来到OEP

  1. 004010CC push ebp ; //来到OEP
  2. 004010CD 8BEC mov ebp,esp
  3. 004010CF 83EC sub esp,0x44
  4. 004010D2 push esi
  5. 004010D3 FF15 E4634000 call dword ptr ds:[0x4063E4]
  6. 004010D9 8BF0 mov esi,eax
  7. 004010DB 8A00 mov al,byte ptr ds:[eax]
  8. 004010DD 3C cmp al,0x22
  1.  

6.脱壳后不能运行,我们需要使用loadPE重建PE表

7.运行查壳

  1. 运行OK,查壳:Microsoft Visual C++ v6.0 SPx

二、ESP

1.载入OD,一上来就是一个大跳转,F8单步一直走

  1. 0040D0BE > $ /E9 jmp Notepad.004102DC ; //入口点
  2. 0040D0C3 . |E9 7C2A0000 jmp Notepad.0040FB44
  3. 0040D0C8 $ |E9 jmp Notepad.0040F4E6
  4. 0040D0CD $ |E9 FF230000 jmp Notepad.0040F4D1
  5. 0040D0D2 . |E9 1E2E0000 jmp Notepad.0040FEF5
  6. 0040D0D7 $ |E9 882E0000 jmp Notepad.0040FF64
  7. 0040D0DC $ |E9 2C250000 jmp Notepad.0040F60D
  8. 0040D0E1 $ |E9 AE150000 jmp Notepad.0040E694
  9. 0040D0E6 $ |E9 772B0000 jmp Notepad.0040FC62
  1.  

2.跳转落脚点,落脚点是一个push,push的下一行使用ESP定律,下硬件访问断点,然后SHIFT
+F9运行一次

  1. 004102DC /> \ push ebp ; //落脚点
  2. 004102DD |. 8BEC mov ebp,esp ; //这里使用ESP
  3. 004102DF |. 81EC sub esp,0x428
  4. 004102E5 |. push ebx
  5. 004102E6 |. push esi
  6. 004102E7 |. push edi
  7. 004102E8 |. 8D85 94FCFFFF lea eax,[local.]
  8. 004102EE |. push eax
  1.  

3.来到指向OEP的跳转,再F8一下

  1. |.- FFE0 jmp eax ; //指向OEP的跳转
  2. 0041068A |> 5F pop edi
  3. 0041068B |. 5E pop esi
  4. 0041068C |. 5B pop ebx
  5. 0041068D |. C9 leave
  6. 0041068E \. C3 retn
  7. 0041068F CC int3
  1.  

4.来到OEP,脱壳,重建PE表,运行,查壳

  1. 004010CC push ebp ; //来到OEP
  2. 004010CD 8BEC mov ebp,esp
  3. 004010CF 83EC sub esp,0x44
  4. 004010D2 push esi
  5. 004010D3 FF15 E4634000 call dword ptr ds:[0x4063E4]
  6. 004010D9 8BF0 mov esi,eax
  7. 004010DB 8A00 mov al,byte ptr ds:[eax]
  8. 004010DD 3C cmp al,0x22
  1.  

手脱EZIP v1.0的更多相关文章

  1. 手脱ASProtect v1.23 RC1(有Stolen Code)

    1.载入PEID ASProtect v1.23 RC1 常见ASprotect版本壳: ASProtect 1.23 RC4 按shift+f9键26次后来到典型异常 ASProtect 1.31 ...

  2. 手脱ACProtect v1.35(无Stolen Code)之二

    首先,想说明的是这个壳在我的PC上是可以用上一个帖子中的方法来到假的OEP的:http://www.52pojie.cn/forum.php?mod=viewthread&tid=433462 ...

  3. 手脱ACProtect v1.35(有Stolen Code)

    1.载入PEID ACProtect v1.35 -> risco software Inc. & Anticrack Soft 2.载入OD,需要注意的是,异常选项除了[内存访问异常] ...

  4. 手脱ACProtect v1.35(无Stolen Code)

    1.载入PEID ACProtect v1.35 -> risco software Inc. & Anticrack Soft 2.载入OD,需要注意的是,异常选项除了[内存访问异常] ...

  5. 手脱FSG v1.33

    1.载入PEID FSG v1.33 (Eng) -> dulek/xt 2.载入OD,先F8跟一会 004103E3 > BE A4014000 mov esi,fsg1_33.0040 ...

  6. 手脱EXE32Pack v1.39

    1.PEID查壳 EXE32Pack v1.39 2.载入OD,先F8跟一下 0040A00C > 3BC0 cmp eax,eax ; //程序入口点 0040A00E je short st ...

  7. 简单脱壳教程笔记(8)---手脱EZIP壳

    本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 EZIP壳 : ...

  8. 手脱ASProtect v1.23 RC1(有Stolen Code)之以壳解壳

    1.载入PEID ASProtect v1.23 RC1 2.载入OD,不勾选内存访问异常,其他异常全部勾选 > 01C06D00 push SoWorker.006DC001 ; //入口点 ...

  9. 手脱ASProtect v1.23 RC1(无Stolen Code)

    1.载入PEID ASProtect v1.23 RC1 2.载入OD,不勾选内存访问异常,其他异常全部勾选 > 01C04200 push 跑跑排行.0042C001 ; //入口处 E8 c ...

随机推荐

  1. VSCode打开已有vuejs项目

    转载自 https://blog.csdn.net/yoryky/article/details/78290443 下载安装并配置VSCode 随便百度上搜个最新的VSCode安装好后,点击Ctrl ...

  2. linux同步软件

    linux同步软件:scp,rsync,inotify,sersync 1.scp: scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式 ...

  3. spark的运行方式——转载

    本文转载自:      spark的运行方式 本文主要讲述运行spark程序的几种方式,包括:本地测试.提交到集群运行.交互式运行 等. 在以下几种执行spark程序的方式中,都请注意master的设 ...

  4. 人生苦短,我用Python!

    一.程序分析 1.读取文件到缓冲区 def process_file(): # 读文件到缓冲区 try: # 打开文件 f = open("C:\\Users\\panbo\\Desktop ...

  5. 阅读笔记《我是一只IT小小鸟》

    我是一只IT小小鸟 我们在尝试新的事物的时候,总是会遇到各种各样的困难,不同的人会在碰壁不同的次数之后退出.用程序员喜欢的话来说就是,我们都在for循环,区别在于你是什么情况下break;的.有的人退 ...

  6. 定时器应用-点击按钮,div向右移动

    需求是点击button,div就一直往右移动,给个条件left=800px就停止移动,通过定时器来控制. 代码如下: <!DOCTYPE html> <html> <he ...

  7. 爬虫学习之-操作mysql

    在操作数据库的时候,python2中一般使用mysqldb,但在python3中已经不在支持mysqldb了,我们可以用pymysql和mysql.connector.本文的所有操作都是在python ...

  8. Django之contenttypes的应用

    Django contenttypes 应用 简介 contenttypes 是Django内置的一个应用,可以追踪项目中所有app和model的对应关系,并记录在ContentType表中. 每当我 ...

  9. javascript 常用知识点

    1:浏览器是有缓存的,开发中可以通过快捷键绕过缓存 对于Windows驱动的系统:Ctrl + F5 对于Mac驱动的系统:Command + Shift + R. 2:精度问题 (符点和大数字可能会 ...

  10. MethodHandle

    JDK7为间接调用方法引入新的API,在java.lang.invoke包下,可以看作为反射的升级版,但它不像反射API那样显得冗长.繁重 主要的类 MethodHandle 方法句柄.对可直接执行的 ...