黑夜彩虹 发表于 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:,AL
00401178    0000            ADD BYTE PTR DS:,AL
0040117A    0000            ADD BYTE PTR DS:,AL
0040117C    3000            XOR BYTE PTR DS:,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:
00401653   .C1E0 02       SHL EAX,2
00401656   .A3 8FE04E00   MOV DWORD PTR DS:,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:,EAX
0040100C|.E8 B50A0000   CALL <JMP.&KERNEL32.GetCommandLineA>   ; [GetCommandLineA
00401011|.A3 10354000   MOV DWORD PTR DS:,EAX
00401016|.6A 0A         PUSH 0A                                  ; /Arg4 = 0000000A
00401018|.FF35 10354000 PUSH DWORD PTR DS:               ; |Arg3 = 00000000
0040101E|.6A 00         PUSH 0                                 ; |Arg2 = 00000000
00401020|.FF35 0C354000 PUSH DWORD PTR DS:               ; |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:
push eax
mov fs:,esp
+++++++++++++++下边再恢复 +++++++++++++++
pop eax
mov fs:,eax
pop eax
pop eax
pop eax
pop eax
mov ebp,eax
++++++++++++++++++++++++++++++++
    别忘了jmp 405000,也就是壳的入口点.选中修改过的代码按右键,把它保存为newTarget.exe.

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

感谢您耐心阅读到这里。写的不好勿丢砖头.... /:D

黑夜彩虹 发表于 2006-6-11 01:03:43

此举虽然没什么保障,但相信:多一个手段,多一份安全 ;P

wpj1122 发表于 2006-6-11 22:54:39

学过.路过..终有一记....
感谢.
留心已...

caterpilla 发表于 2006-6-12 15:00:58

厉害。。。。。。。。。。。。
有没有工具实现上述功能?

shenhui95 发表于 2006-6-12 20:54:24

谢谢楼主分享

浮云思音 发表于 2006-6-15 15:45:08

有空试试,怪不得你用DELPHI怎么编出C++呢,这种方法要用Inno吗

黑夜彩虹 发表于 2006-6-15 17:10:26

原帖由 浮云思音 于 2006-6-15 15:45 发表
有空试试,怪不得你用DELPHI怎么编出C++呢,这种方法要用Inno吗

没试过,估计不行...:P

ZHOU2X 发表于 2006-6-15 17:37:56

入口点代码

学习,收藏!!支持!!!!

黑夜彩虹 发表于 2006-6-16 00:18:15

已补上录像,请到FTP下载~~~

pentacle 发表于 2006-6-16 00:47:05

原帖由 caterpilla 于 2006-6-12 15:00 发表
厉害。。。。。。。。。。。。
有没有工具实现上述功能?
有!
找找看
页: [1] 2 3 4
查看完整版本: 于破解过招--伪装术