首页
社区
课程
招聘
[求助][求助]能帮忙翻译吗
发表于: 2010-6-30 00:20 4695

[求助][求助]能帮忙翻译吗

2010-6-30 00:20
4695
See this tutor in notepad,Font Fixedsys Regular size 10

       
       
        Toolz Used: Olly v1.10,PEid v0.93,Ollydump Plugin and ImpRec.

        Well,hallo U riderz of the StorM.This is an easy tutor I decide
        to write,because I saw that many of U were interested in unpacking
        this protector,althought I dont know the reason why.The way up to
        the OEP is really easy (only an anti-debugging trick makes this
        tutor a little hard for newbiez) and the IAT rebuilding is pretty
        simple too.So,download MagicCursor2000 v2.2.1.1 from www.madentec.com
        (this version is the most revent now,January 2005).Install the software.
       
        Now use the PEid  tool and U can see that is under the protection of
        Crunch/PE Heuristic -> Bit-Arts [Overlay].Now open Olly and load the
        target.U should be HeRe :

00484000 > $ 55             PUSH EBP                        <----- U are HeRe
00484001   . E8 00000000    CALL MagicCur.00484006
00484006   $ 5D             POP EBP
00484007   . 83ED 06        SUB EBP,6
0048400A   . 8BC5           MOV EAX,EBP
0048400C   . 55             PUSH EBP
0048400D   . 60             PUSHAD
0048400E   . 89AD 8A340000  MOV DWORD PTR SS:[EBP+348A],EBP
00484014   . 2B85 65340000  SUB EAX,DWORD PTR SS:[EBP+3465]
0048401A   . 8985 19250000  MOV DWORD PTR SS:[EBP+2519],EAX

        Be sure that in Debugging Options the only checked option is
        Ignore memory access violations in KERNEL32.Now press F9 to run and U are at
        a screen.Press Continue and Olly breaks at an exception,here:

77F51081   890424           MOV DWORD PTR SS:[ESP],EAX
77F51084   C74424 04 000000>MOV DWORD PTR SS:[ESP+4],0
77F5108C   C74424 08 000000>MOV DWORD PTR SS:[ESP+8],0
77F51094   C74424 10 000000>MOV DWORD PTR SS:[ESP+10],0
77F5109C   54               PUSH ESP
77F5109D   E8 05000000      CALL ntdll.RtlRaiseException
77F510A2   E9 BD000000      JMP ntdll.77F51164                  <------  Olly breaks HeRe
77F510A7 > 55               PUSH EBP
77F510A8   8BEC             MOV EBP,ESP
77F510AA   9C               PUSHFD
77F510AB   81EC D0020000    SUB ESP,2D0
77F510B1   8985 DCFDFFFF    MOV DWORD PTR SS:[EBP-224],EAX
77F510B7   898D D8FDFFFF    MOV DWORD PTR SS:[EBP-228],ECX
77F510BD   8B45 08          MOV EAX,DWORD PTR SS:[EBP+8]

        Try to continue the execution of the target with Shift+F9 and U will get a message
        saying Starting Error.This is an anti-debugging trick.So,load again the file
        and when U get an exception look at the eax register.It has a value.This is
        the value of the exception the prog on purpose trigered.If U also see at the
        down left side of Olly,it says Exception ... use ... to pass exception to
        program.And XXXXXXXX is the number of exception,for me was C0000008.Now check an
        opcode up from there where Olly broke (this is at 77F5109D).What has happened here?

        Well this is the anti-debug trick:The prog being debugged,our target,caused an
        exception using RtlRaiseException API and in eax is the value of that.Then uses another
        API that is called SetUnhandledExceptionFilter.This last API will set up a memory
        location that the prog will jamp at if not being debuged.If being debuged it won't
        jamp there,and continue its execution to a routine that sends the error message in
        screen and in other cases makes the program crash.Here is also the reference of
        SetUnhandledExceptionFilter API from msn:

SetUnhandledExceptionFilter

The SetUnhandledExceptionFilter function enables an application to supersede
the top-level exception handler of each thread and process.

After calling this function, if an exception occurs in a process that is not being
debugged, and the exception makes it to the unhandled exception filter, that filter
will call the exception filter function specified by the lpTopLevelExceptionFilter
parameter.

LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
  LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);

Parameters

lpTopLevelExceptionFilter
    [in] Pointer to a top-level exception filter function that will be called
    whenever the UnhandledExceptionFilter function gets control, and the process is not
    being debugged. A value of NULL for this parameter specifies default handling within
    UnhandledExceptionFilter.

        So after the exception that paused Olly,we will make eax zero and the prog will
        not handle an exception,as it will think that there is not one actually.So make eax
        zero and press F9.Well,it runs jut fine.Anti-debugging trick defeated.Now we have
        to go to OEP.Restart the prog again with Olly and start tracing manually,using F7
        till the first PUSHAD opcode.After executing it U are HeRe:

00484000 > $ 55             PUSH EBP
00484001   . E8 00000000    CALL MagicCur.00484006
00484006   $ 5D             POP EBP
00484007   . 83ED 06        SUB EBP,6
0048400A   . 8BC5           MOV EAX,EBP
0048400C   . 55             PUSH EBP
0048400D   . 60             PUSHAD
0048400E   . 89AD 8A340000  MOV DWORD PTR SS:[EBP+348A],EBP          <--- U are HeRe
00484014   . 2B85 65340000  SUB EAX,DWORD PTR SS:[EBP+3465]
0048401A   . 8985 19250000  MOV DWORD PTR SS:[EBP+2519],EAX
00484020   . 55             PUSH EBP

        Now press on ESP a right click->Follow in Dump.Now in data window under code
        highlight the first 4 bytes U see,right click and the breakpoint hardware on
        access Dword.We do that because there is a POPAD opcode just before the magic
        jamp at OEP,and the same thing the the prog has at PUSHAD after we set the
        hardware breakpoint and the POPAD just before the Jamp at OEP,is the same
        stack pointer value (well,assuming no complicated other opcodes that mess
        stack up=>indicates a hard to unpack sheme,but this is not one of them).

        Now,press F9 and then the screen apears,Continue,now the anti-debug thing and
        press F9.When Olly pauses,richt click on code and choose Analysis->Analize code.
        U should be here:

004840E5   . 5D             POP EBP                                  ;  MagicCur.<ModuleEntryPoint>
004840E6   . 8B85 86340000  MOV EAX,DWORD PTR SS:[EBP+3486]
004840EC   . 5D             POP EBP
004840ED   . FFE0           JMP EAX
004840EF     BE             DB BE
004840F0     86             DB 86
004840F1     34             DB 34                                    ;  CHAR '4'
004840F2     00             DB 00
004840F3     00             DB 00

        Well,at 004840ED jamps at OEP.So,trace with F7 and execute the JMP EAX and U
        should be HeRe:

00408FB2  /. 55             PUSH EBP
00408FB3  |. 8BEC           MOV EBP,ESP
00408FB5  |. 6A FF          PUSH -1
00408FB7  |. 68 F8024100    PUSH MagicCur.004102F8
00408FBC  |. 68 28AB4000    PUSH MagicCur.0040AB28                   ;  SE handler installation
00408FC1  |. 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
00408FC7  |. 50             PUSH EAX
00408FC8  |. 64:8925 000000>MOV DWORD PTR FS:[0],ESP
00408FCF  |. 83EC 58        SUB ESP,58
00408FD2  |. 53             PUSH EBX
00408FD3  |. 56             PUSH ESI
00408FD4  |. 57             PUSH EDI
00408FD5  |. 8965 E8        MOV DWORD PTR SS:[EBP-18],ESP
00408FD8  |. FF15 38014100  CALL DWORD PTR DS:[410138]               ;  kernel32.GetVersion

       

        Now delete the hardware breakpoint U earlier set and dump the process with Olly
        Plugin without having checked the Rebuild Import option checked.Now open IMpreC
        and select the process,enter as OEP the value 00408FB2-00400000=8FB2 and then
        IAT autosearch and Get Imports.Now,press Show invalid,good,no invalid thunk.So
        proceed and Fix Dump.Now run the fixed file and...it Workz!

        Well,that was it about this packer.Maybe to See ya in Dillo'z Copymem defeating tutor
                                     ...But I'm not sure...

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 44
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
提供个建议
可以去Google翻一下。。
2010-6-30 01:01
0
雪    币: 102
活跃值: (50)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
大致就是说这个壳很好脱,就是有反调试比较麻烦一点,第一次异常中断下来后改eax为1可以跳过反调试运行软件,然后esp定律找oep,dump后修复iat,就这样,2005年的,很老了
2010-6-30 12:25
0
雪    币: 136
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
见到笔记本的这一位指导教师 , 字型 Fixedsys 老客户大小 10

  
  
  Toolz 用: Olly v1.10 , PEid v0.93 , Ollydump 网络设备和 ImpRec。

  好吧, 喂暴风雨的 U riderz。这是我决定的容易指导教师
  写,因为我见到大部份 U 对卸下感兴趣
  这一个保护者 , 第一 althought dont 知道理由为什么。方法提高到
  OEP 真的容易 ( 只有一个反除错诡计制造这
  为 newbiez 稍微努力地个别教授) 而且 IAT 再建很漂亮
  简单的 too.So,下载来自 www.madentec.com 的 MagicCursor2000 v2.2.1.1
  ( 这一个版本是最大多数的再排气口现在,2005 年一月).安装软件。
  
  现在使用 PEid 工具,而且 U 能见到那是在保护之下
  咬碎/ PE 启发 ->一点点- 艺术 [复盖].现在开着的 Olly 和负荷那
  目标。U 应该在这里 :

00484000>$55             推 EBP      <-----U 在这里
00484001. E800000000    呼叫 MagicCur  00484006。
00484006$5 D             邮局协议 EBP
00484007. 83 ED 06        代替 EBP,6
0048400 A 。 8 BC5           MOV EAX,EBP
0048400 C 。 55             推 EBP
0048400 D 。 60             PUSHAD
0048400 E 。 89 AD 8 A340000 MOV DWORD PTR SS:[EBP+348 A],EBP
00484014. 2 B8565340000 代替 EAX , DWORD PTR SS:[EBP+3465]
0048401 A 。 898519250000 MOV DWORD PTR SS:[EBP+2519],EAX

  确定在除错唯一的检查选项是的选项方面
  不理睬记忆通路 KERNEL32 的违反。现在压 F9 到奔跑和 U 是在
  一个荧屏。杂志报纸继续和 Olly 休息在例外,这里:

77 F51081890424           MOV DWORD PTR SS:[ESP],EAX
77 F51084 C7442404000000> MOV DWORD PTR SS:[ESP+4],0
77 F5108C C7442408000000> MOV DWORD PTR SS:[ESP+8],0
77 F51094 C7442410000000> MOV DWORD PTR SS:[ESP+10],0
77 F5109C 54               推 ESP
77 F5109D E805000000      呼叫 ntdll  RtlRaiseException。
77 F510A2 E9 BD000000      JMP ntdll。77 F51164      <------ Olly 在这里的休息
77 F510A7>55               推 EBP
77 F510A88 BEC             MOV EBP,ESP
77 F510AA 9 C               PUSHFD
77 F510AB 81 EC D0020000    代替 ESP , 2 D0
77 F510B18985 DCFDFFFF    MOV DWORD PTR SS:[EBP-224],EAX
77 F510B7898 D D8FDFFFF    MOV DWORD PTR SS:[EBP-228],ECX
77 F510BD 8 B4508          MOV EAX,DWORD PTR SS:[EBP+8]

  试着用变化继续目标的实行+ F9 和 U 将会收到一个信息
  叙述出发错误。这是反除错 trick.So,再一次装载文件
  而且当 U 拿例外看 eax 寄存器的时候。资讯科技有价值。这是
  例外的价值食物故意 trigered。如果 U 也见到在那
  ??落 Olly 的左边, 它说例外。。。 使用。。。 通过例外到
  计画。而且 XXXXXXXX 是例外的数字,为我是 C0000008。现在检查一
  操作码向上从 Olly 断掉的那里.( 这在 77 F5109D)什么已经在这里发生?

  好的这是反侦错诡计:被除错的食物,我们的目标, 引起一
  例外使用 RtlRaiseException 美国石油协会而且在 eax 中是那的价值。然后使用另外一
  被称为 SetUnhandledExceptionFilter 的美国石油协会。这最后的美国石油协会将会建立记忆
  食物决意 jamp 的位置在如果不作为 debuged。如果作为 debuged 它不将会
  jamp 那里, 而且继续对一个传达错误信息进入的常式它实行
  审查并且在其他的情况制造计画坠毁。这里也是叁考
  来自 msn 的 SetUnhandledExceptionFilter 美国石油协会:

SetUnhandledExceptionFilter

SetUnhandledExceptionFilter 功能使一个代替的申请能够
每条线和程序的最高阶层例外处理的人。

在呼叫这一个功能之后,如果例外在一个程序中发生是不在
除错,而且例外做到到被不处理的例外过滤器, 那一个过滤器
将会认为例外是过滤器被 lpTopLevelExceptionFilter 指定的功能
叁数。

LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
  LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);

叁数

lpTopLevelExceptionFilter
    [在] 对最高阶层的例外指针过滤器将会被叫做的功能
    每当 UnhandledExceptionFilter 功能得到控制,而且程序是不
    被除错。 这一个叁数的零价值叙述假设值在里面操作
    UnhandledExceptionFilter。

  如此的暂停 Olly 的例外之后, 我们将会使 eax 零和食物意志
  不处理例外,如同它将会认为实际上没有一一样。如此制造 eax
  零和杂志报纸 F9.Well,它跑尖端罚款。反除错诡计击败。现在我们有
  去 OEP 。再一次以 Olly 重新开始食物而且用手开始追踪,使用 F7
  直到第一个 PUSHAD 操作码。在运行它 U 之后在这里:

00484000>$55             推 EBP
00484001. E800000000    呼叫 MagicCur  00484006。
00484006$5 D             邮局协议 EBP
00484007. 83 ED 06        代替 EBP,6
0048400 A 。 8 BC5           MOV EAX,EBP
0048400 C 。 55             推 EBP
0048400 D 。 60             PUSHAD
0048400 E 。 89 AD 8 A340000 MOV DWORD PTR SS:[EBP+348 A],EBP          <--- U 在这里
00484014. 2 B8565340000 代替 EAX , DWORD PTR SS:[EBP+3465]
0048401 A 。 898519250000 MOV DWORD PTR SS:[EBP+2519],EAX
00484020. 55             推 EBP

  现在压在 ESP 上正确的点击->在垃圾场中跟随。现在在在密码下面的数据窗户中
  加亮 U 见到的最初 4个位元组, 正确的点击和暂停点硬件在
  存取 Dword 。我们做,因为就在魔术之前有一个 POPAD 操作码
  在 OEP 的 jamp, 和相同的事物食物在我们之后在 PUSHAD 已经设定那
  硬件暂停点和 POPAD 就在 Jamp 之前在 OEP, 是相同的
  堆叠指针价值 (很好地, 假定没有复杂的其他操作码乱七八糟
  堆叠在=上面> 指出一困难卸下 sheme,但是这不是他们的其中之一).

  现在, 压 F9 然后荧屏 apears,继续, 现在反侦错事物和
  压 F9 。当 Olly 暂停的时候, richt 在密码上的点击而且选择分析->Analize 密码。
  U 应该在这里:

004840 E5 。 5 D             邮局协议 EBP                                  ;  MagicCur。<ModuleEntryPoint>
004840 E6 。 8 B8586340000 MOV EAX,DWORD PTR SS:[EBP+3486]
004840 EC 。 5 D             邮局协议 EBP
004840 ED 。 FFE0           JMP EAX
004840 EF     是             分贝是
004840 F0     86             分贝 86
004840 F1     34             分贝 34                                    ;  零碎工作 '4'
004840 F2     00             分贝 00
004840 F3     00             分贝 00

  好吧,在 OEP.So 的 004840 ED jamps ,以 F7 追踪而且运行 JMP EAX 和 U
  应该在这里:

00408 FB2/. 55             推 EBP
00408 FB3|. 8 BEC           MOV EBP,ESP
00408 FB5|. 6 A FF          推 -1
00408 FB7|. 68 F8024100    推动 MagicCur  004102 F8。
00408 FBC|. 6828 AB4000    推动 MagicCur 。0040 AB28                   ;  SE 处理的人安装
00408 FC1|. 64:A100000000 MOV EAX,DWORD PTR FS:[0]
00408 FC7|. 50             推 EAX
00408 FC8|. 64:8925000000> MOV DWORD PTR FS:[0],ESP
00408 FCF|. 83 EC 58        代替 ESP,58
00408 FD2|. 53             推 EBX
00408 FD3|. 56             推 ESI
00408 FD4|. 57             推 EDI
00408 FD5|. 8965 E8        MOV DWORD PTR SS:[EBP-18],ESP
00408 FD8|. FF1538014100 呼叫 DWORD PTR DS:[410138]               ;  kernel32.GetVersion

  

  现在早地划除硬件暂停点 U 组并且用 Olly 倾卸程序
  不有检查的网络设备那再建被检查的进口货选项。现在打开 IMpreC
  而且选择程序, 进入如 OEP 价值 00408 FB2-00400000=8 FB2 然后
  IAT autosearch 而且有 Imports.Now,杂志报纸出示有病的,好,和没有有病的编译次程序。如此
  着手进行而且固定垃圾场。现在跑固定的文件和。。。它 Workz!

  好吧,那是它有关这一个打包机的事。也许见到 Dillo'z Copymem 的 ya 击败指导教师
             。。。但是我不确定。。。
2010-6-30 17:54
0
雪    币: 132
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼上的是GOOGLE翻译吧...翻译的还真像
2010-7-8 17:53
0
游客
登录 | 注册 方可回帖
返回
//