欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

ASPROtect 1.22加壳的ahaview2.0脱壳 (5千字)

ASPROtect 1.22加壳的ahaview2.0脱壳 (5千字)

ASPROtect 1.22加壳的ahaview2.0脱壳
crack by fwnl
软件简介:AhaView是一个功能单纯的看图软件,具有类似资源管理的树状目录分类,可以显示目录内所有图片的缩图,也可用全屏幕模式查看单张图片。
软件http://gwbn.onlinedown.net/down/ahaview.exe
由于这个程序是用Aspr1.22(FI 249查的)加壳,所以caspr不能脱此壳,于是就只有手动来脱了。
一.找入口点
    由于是delphi程序,所以利用快速寻找aspr入口的方法:
    执行ahaview2.0,用prodump选dump(full)脱壳,存为dump.exe。接着用UltraEdit32打开dump.exe,ALT+F3,填runtime,选中查找ASCⅡ,执行搜索,搜到后,向上查找离runtime最近的机器码为55 8B EC的地方就是程序的oep,而在AhaView.exe里这个位置在offset:000E3978处,用peditor的flc功能将它转换为virtual address就是004e3978----oep。
二.用trw2000初步脱壳
  下面要在入口处脱壳,打开SuperBPM,点erase,用trw载入Any2Icon.exe,下g 4e3978,接着下pedump脱出程序.
三.修复import table
  打开原加壳程序,在Import REConstructor v1.4.2+ 的 Attach to an Active Process 窗口中选取ang2icon.exe的进程,然后在下方的oep处填入000e3978,点IAI AutoSearch,再点Get Imports 然后点Show Invalid,在Imported Functions Found窗口里的无效地址上点鼠标右键,选Trace Leve11(disasm),再点show invaids,发现还有几个没有修复,再次在那几个没有修复的地址上点鼠标右键.
  选中Plugin Tracer(Asprotect 1.2X Emul),再点show invaids应发现所有的dll显示 valid:Yes了。然后点Fix Dump,选中你用trw2000 pedump出的文件修复.
  这样修复后的程序还是不能运行.于是我们要看程序在那里出错,然后再用原版的对比看.
0167:004E3978  PUSH    EBP                      //入口
0167:004E3979  MOV      EBP,ESP
0167:004E397B  ADD      ESP,BYTE -10
0167:004E397E  XOR      EAX,EAX
0167:004E3980  MOV      [EBP-10],EAX
0167:004E3983  MOV      EAX,004E3578
0167:004E3988  CALL    004065E4
0167:004E398D  XOR      EAX,EAX
0167:004E398F  PUSH    EBP
0167:004E3990  PUSH    DWORD 004E39F3
0167:004E3995  PUSH    DWORD [FS:EAX]
0167:004E3998  MOV      [FS:EAX],ESP
0167:004E399B  MOV      EAX,[004E89B0]
0167:004E39A0  MOV      EAX,[EAX]
0167:004E39A2  CALL    00451EBC
0167:004E39A7  MOV      EAX,[004E89B0]
0167:004E39AC  MOV      EAX,[EAX]
0167:004E39AE  MOV      EDX,004E3A08
0167:004E39B3  CALL    00451AC0
0167:004E39B8  LEA      EAX,[EBP-10]
0167:004E39BB  CALL    00453458
0167:004E39C0  MOV      EDX,[EBP-10]
0167:004E39C3  MOV      EAX,[004E89B0]
0167:004E39C8  MOV      EAX,[EAX]
0167:004E39CA  ADD      EAX,BYTE +40
0167:004E39CD  MOV      ECX,004E3A18
0167:004E39D2  CALL    00404014
0167:004E39D7  CALL    NEAR [004E8620] 这个call指向cec8fb,F8进去全是?号
0167:004E39DD  XOR      EAX,EAX
用原未脱壳的程序进入0167:004E39D7  CALL    NEAR [004E8620]发现到了下面这里:
0167:00CEC8FB  NOP   
0167:00CEC8FC  CMP      DWORD [00CF35A8],BYTE +00
0167:00CEC903  JZ      00CEC90b
0167:00CEC905  CALL    NEAR[00CF35A8] //f8进入
就来到了下面这里
0167:004E34F3  RET   
0167:004E34F4  PUSH    EBX            //CALL    NEAR [004E8620]真正指向
0167:004E34F5  XOR      EBX,EBX
0167:004E34F7  CALL    00402A10
0167:004E34FC  TEST    EAX,EAX
于是知道脱出的程序少了CXXXXX到CXXXXXX这段。
我们首先d cec8fb,然后Alt+Page Up ,当看到数据框内如下显示
可知道这段数据从CE0100开始.

0030:00CE0FE0 ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ?? 
0030:00CE0FF0 ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ?? <---空地址了
0030:00CE1000 0A 06 73 74 72 69 6E 67-00 00 00 00 00 00 00 00 ..string........
0030:00CE1010 00 00 00 00 00 00 00 00-3C 10 C9 00 00 00 00 00 ........<.?....
0030:00CE1020 6D 11 C9 00 04 00 00 00-00 00 00 00 B0 29 C9 00 m.?........??
0030:00CE1030 98 28 C9 00 C0 28 C9 00-04 29 C9 00 11 00 0B 00 ????.)?....
0030:00CE1040 10 29 C9 00 04 46 72 65-65 13 00 1C 29 C9 00 0C .)?.Free...)?.
然后Alt+Page Down ,当看到数据框内如下显示
可知道这段数据从cF8000结束.
0030:00CF7FD0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0030:00CF7FE0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0030:00CF7FF0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0030:00CF8000 ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ?? <---空地址了
0030:00CF8010 ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ?? 
0030:00CF8020 ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ?? 
    于是我们就在trw2000中w CE1000 CF8000 new.bin.来保存出new.bin
用winhex打开dump_.exe和NEW.bin把NEW.bin的内容粘贴到dump_.exe的最后,然后再用peditor载入dump_.exe,点sections,然后右键点add a section添加一个新段名字为new.然后选中new这段section,右键点edit ection编辑它,由于CF8000-CE1000=17000,所以在Virtuel Siae填入00017000,Virtuel Offsize 填008E1000 ,因为(cE1000-400000=8E1000), Raw填00017000,然后点apply changes来保存修改。最后再点rebuilder,去掉所有的勾,只保留 make PE Header win nt/2k compatible这一项.然后点do这样就重建好的Pe头了.
呵呵,这样程序就可以运行了,好像没什么错误,脱壳后的东西不能用下面的这个key注册,这个东西的注册版我还是脱不了呀,各位大哥帮忙看看呀.谢谢了.
这个东西的注册key: 0Klum1it1rCgBqNbtZwcvn8VzbIiGRUiN8sWOI9OP7GNX/SrjmJU0gvxCz            ?? JRlA8eYj5ZTz+D/KPZI2lLKEd1oNV28TnfdgZUCOaNpgKtp/JVIQeaZ5Gs            ?? 3gIHiOV6RjghDLecqi6PM5ECbzfl3sN5qO0AvxLrtOvB5lbzpP+UKlqA=                                                           
                                                                            fwnl
                                                                          2002.3.24
                                                                            长沙

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功