飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 9897|回复: 31

于破解过招--伪装术

[复制链接]

该用户从未签到

发表于 2006-6-11 00:54:37 | 显示全部楼层 |阅读模式
为了使你的程序不那么容易被破解,可以为装成其它语言开发的。

下面我们贴一些常见语言编写的程序的入口点代码

delphi:

  55            PUSH EBP
  8BEC          MOV EBP,ESP
  83C4 F0       ADD ESP,-10
  B8 A86F4B00   MOV EAX,PE.004B6FA8


vc++
   55            PUSH EBP
   8BEC          MOV EBP,ESP
   83EC 44       SUB ESP,44
   56            PUSH ESI

vc6.0
  55                 push ebp
  8BEC               mov ebp,esp
  6A FF              push -1

vc7.0

  6A 70              push 70
  68 50110001        push hh.01001150
  E8 1D020000        call hh.010017B0
  33DB               xor ebx,ebx



vb:


00401166  - FF25 6C104000   JMP DWORD PTR DS:[<&MSVBVM60.#100>]      ; MSVBVM60.ThunRTMain
0040116C >  68 147C4000     PUSH PACKME.00407C14
00401171    E8 F0FFFFFF     CALL <JMP.&MSVBVM60.#100>
00401176    0000            ADD BYTE PTR DS:[EAX],AL
00401178    0000            ADD BYTE PTR DS:[EAX],AL
0040117A    0000            ADD BYTE PTR DS:[EAX],AL
0040117C    3000            XOR BYTE PTR DS:[EAX],AL


bc++
0040163C > $ /EB 10         JMP SHORT BCLOCK.0040164E
0040163E     |66            DB 66                                    ;  CHAR 'f'
0040163F     |62            DB 62                                    ;  CHAR 'b'
00401640     |3A            DB 3A                                    ;  CHAR ':'
00401641     |43            DB 43                                    ;  CHAR 'C'
00401642     |2B            DB 2B                                    ;  CHAR '+'
00401643     |2B            DB 2B                                    ;  CHAR '+'
00401644     |48            DB 48                                    ;  CHAR 'H'
00401645     |4F            DB 4F                                    ;  CHAR 'O'
00401646     |4F            DB 4F                                    ;  CHAR 'O'
00401647     |4B            DB 4B                                    ;  CHAR 'K'
00401648     |90            NOP
00401649     |E9            DB E9
0040164A   . |98E04E00      DD OFFSET BCLOCK.___CPPdebugHook
0040164E   > \A1 8BE04E00   MOV EAX,DWORD PTR DS:[4EE08B]
00401653   .  C1E0 02       SHL EAX,2
00401656   .  A3 8FE04E00   MOV DWORD PTR DS:[4EE08F],EAX
0040165B   .  52            PUSH EDX
0040165C   .  6A 00         PUSH 0                                   ; /pModule = NULL
0040165E   .  E8 DFBC0E00   CALL <JMP.&KERNEL32.GetModuleHandleA>    ; \GetModuleHandleA
00401663   .  8BD0          MOV EDX,EAX

dasm:

00401000 >/$  6A 00         PUSH 0                                   ; /pModule = NULL
00401002  |.  E8 C50A0000   CALL <JMP.&KERNEL32.GetModuleHandleA>    ; \GetModuleHandleA
00401007  |.  A3 0C354000   MOV DWORD PTR DS:[40350C],EAX
0040100C  |.  E8 B50A0000   CALL <JMP.&KERNEL32.GetCommandLineA>     ; [GetCommandLineA
00401011  |.  A3 10354000   MOV DWORD PTR DS:[403510],EAX
00401016  |.  6A 0A         PUSH 0A                                  ; /Arg4 = 0000000A
00401018  |.  FF35 10354000 PUSH DWORD PTR DS:[403510]               ; |Arg3 = 00000000
0040101E  |.  6A 00         PUSH 0                                   ; |Arg2 = 00000000
00401020  |.  FF35 0C354000 PUSH DWORD PTR DS:[40350C]               ; |Arg1 = 00000000
++++++++++++++++++++++++++++++++
看到这里,你应该会问:那么要如何为装?下面我们简单的介绍一下:

1、用ToPo增加大约128字节的空间[注:个人爱好而定],
2、进入LordPE的PE Editor,打开Target.exe,
把.topo0段名改为.text,装的更像一点[注:也可以个性一点改成自己的大名,不影响结果]

    记下VOffset:13000,把入口点改为这个值.OllyDbg载入Target.exe,轰~我们来到了一个异常,

向上拉动滚动条,来到413000处改写代码:
++++++++++++++++++++++++++++++++
伪造VC++入口代码特征
++++++++++++++++++++++++++++++++

push ebp
mov ebp,esp
push -1
push 666666
push 888888
mov eax,fs:[0]
push eax
mov fs:[0],esp
+++++++++++++++下边再恢复 +++++++++++++++
pop eax
mov fs:[0],eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
++++++++++++++++++++++++++++++++
    别忘了jmp 405000,也就是壳的入口点.选中修改过的代码按右键,把它保存为newTarget.exe.

PEiD侦测一下:Microsoft Visual C++,并且运行正常,任务完成.

感谢您耐心阅读到这里。写的不好勿丢砖头.... /:D
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2006-6-11 01:03:43 | 显示全部楼层
此举虽然没什么保障,但相信:多一个手段,多一份安全 ;P
PYG19周年生日快乐!

该用户从未签到

发表于 2006-6-11 22:54:39 | 显示全部楼层
学过.路过..终有一记....
感谢.
留心已...
PYG19周年生日快乐!

该用户从未签到

发表于 2006-6-12 15:00:58 | 显示全部楼层
厉害。。。。。。。。。。。。
有没有工具实现上述功能?
PYG19周年生日快乐!

该用户从未签到

发表于 2006-6-12 20:54:24 | 显示全部楼层
谢谢楼主分享
PYG19周年生日快乐!

该用户从未签到

发表于 2006-6-15 15:45:08 | 显示全部楼层
有空试试,怪不得你用DELPHI怎么编出C++呢,这种方法要用Inno吗
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2006-6-15 17:10:26 | 显示全部楼层
原帖由 浮云思音 于 2006-6-15 15:45 发表
有空试试,怪不得你用DELPHI怎么编出C++呢,这种方法要用Inno吗


  没试过,估计不行...:P
PYG19周年生日快乐!

该用户从未签到

发表于 2006-6-15 17:37:56 | 显示全部楼层
入口点代码

学习,收藏!!支持!!!!
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2006-6-16 00:18:15 | 显示全部楼层
已补上录像,请到FTP下载~~~
PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2017-9-28 11:05
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2006-6-16 00:47:05 | 显示全部楼层
    原帖由 caterpilla 于 2006-6-12 15:00 发表
    厉害。。。。。。。。。。。。
    有没有工具实现上述功能?

    有!
    找找看
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表