飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4438|回复: 4

关于一个脱tElock 0.98壳后C++程序的自检验去除请教!

[复制链接]
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-5-14 10:30:19 | 显示全部楼层 |阅读模式
    【破文标题】软件破解学习交流手记
    【破文作者】野猫III[D.4s]
    【破解工具】PEiD,W32DASM,UC32,OD
    【破解平台】Windows XP SP2
    【软件名称】屏幕录像专家 V6.0 算法注册机 by 风球[PYG]
    【软件大小】736 KB (754,357 字节)
    【原版下载】飘云阁论坛 (本帖附件)
    【保护方式】加壳,自检验
    【软件简介】一、这个注册机加了tElock 0.98b1 -> tE! [Overlay]壳。咱看了风球兄的脱壳动画,可以搞定。

    二、脱了壳后,没想到这个C++程序还有自检验。这是咱来向大家讨教的。以下是咱的脱壳过程及迷惑。
    【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    ------------------------------------------------------------------------
    一、用PEiD查得壳:tElock 0.98b1 -> tE! [Overlay]

    二、打开OD,选项--调试设置--导常,扣选忽略所有异常。载入程序,程序以下代码:

    00466BD6 >^\E9 25E4FFFF     JMP PL_6_0_K.00465000  。。。停在这里
    00466BDB    0000            ADD BYTE PTR DS:[EAX],AL
    00466BDD    0018            ADD BYTE PTR DS:[EAX],BL
    00466BDF    48              DEC EAX
    00466BE0    06              PUSH ES
    00466BE1    27              DAA
    00466BE2    1E              PUSH DS
    00466BE3    6C              INS BYTE PTR ES:[EDI],DX                 ; I/O 命令

    快捷键Alt+M打开内存映射窗口,找到:
    内存映射, 条目 31
    地址=00406000
    大小=00001000 (4096.)
    属主=PL_6_0_K 00400000
    区段=PELOCKnt
    包含=数据
    类型=Imag 01001002
    访问=R
    初始访问=RWE
    +++++++++右键-设置内存访问断点,然后按快捷键Shift+F9,程序被断在:

    00465D1D    AC              LODS BYTE PTR DS:[ESI] 、、这里
    00465D1E    8D12            LEA EDX,DWORD PTR DS:[EDX]
    00465D20    FEC0            INC AL
    00465D22    D2C8            ROR AL,CL
    00465D24    F6D0            NOT AL
    00465D26    34 B1           XOR AL,0B1
    00465D28    F6D0            NOT AL
    00465D2A    D2C8            ROR AL,CL
    00465D2C    34 05           XOR AL,5
    00465D2E    8D1B            LEA EBX,DWORD PTR DS:[EBX]

    +++++++++右键-查找-二进制字串,或按Ctrl+B,输入0AF6,确定查找:

    00466346    0AF6            OR DH,DH   。。。找到这里
    00466348    895424 1C       MOV DWORD PTR SS:[ESP+1C],EDX
    0046634C    61              POPAD
    0046634D    C685 D7CC4000 0>MOV BYTE PTR SS:[EBP+40CCD7],0
    00466354    74 24           JE SHORT PL_6_0_K.0046637A  。。Magic Jump,je改成jmp

    +++++++++++++++改完之后,再次打开内在映射窗口(Alt+M),找到:
    内存映射, 条目 30
    地址=00401000
    大小=00005000 (20480.)
    属主=PL_6_0_K 00400000
    区段=PELOCKnt
    包含=代码
    类型=Imag 01001002
    访问=R
    初始访问=RWE
    +++++++++++右键--设置内存访问断点,然后按Shift+F9,程序直达OEP:

    00403831    55              PUSH EBP 、、、、、、标准的C语言入口,右键Dump下来。
    00403832    8BEC            MOV EBP,ESP
    00403834    6A FF           PUSH -1
    00403836    68 F0624000     PUSH PL_6_0_K.004062F0
    0040383B    68 A44C4000     PUSH PL_6_0_K.00404CA4
    00403840    64:A1 00000000  MOV EAX,DWORD PTR FS:[0]
    00403846    50              PUSH EAX
    00403847    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
    0040384E    83EC 58         SUB ESP,58
    00403851    53              PUSH EBX
    00403852    56              PUSH ESI
    00403853    57              PUSH EDI
    00403854    8965 E8         MOV DWORD PTR SS:[EBP-18],ESP
    00403857    FF15 48604000   CALL DWORD PTR DS:[406048]               ; kernel32.GetVersion

    +++++++++++++++++++++++++++
    查壳Microsoft Visual C++ 6.0,运行软件,发现有自检验!

    三、用OD载入脱壳后的程序,下命令断点:bp CreateFileA,F9运行程序,程序中断在:

    7C801A24 >  8BFF            MOV EDI,EDI            ; ntdll.7C930738 。。。断在这里,去除断点
    7C801A26    55              PUSH EBP
    7C801A27    8BEC            MOV EBP,ESP
    7C801A29    FF75 08         PUSH DWORD PTR SS:[EBP+8]
    7C801A2C    E8 73C80000     CALL kernel32.7C80E2A4
    7C801A31    85C0            TEST EAX,EAX
    7C801A33    74 1E           JE SHORT kernel32.7C801A53

    ++++++++堆栈友好界面:
    0012FC70   00401183  /CALL 到 CreateFileA 来自 UnPL_6_0.0040117D 。。。程序领空,右键,在反汇编窗口中跟随
    0012FC74   0012FDA0  |FileName = "C:\Documents and Settings\STUDENT\桌面\UnPL 6.0 KeyGen.exe"
    0012FC78   80000000  |Access = GENERIC_READ
    0012FC7C   00000001  |ShareMode = FILE_SHARE_READ
    0012FC80   00000000  |pSecurity = NULL
    0012FC84   00000003  |Mode = OPEN_EXISTING
    0012FC88   00000080  |Attributes = NORMAL
    0012FC8C   00000000  \hTemplateFile = NULL
    0012FC90   7C930738  ntdll.7C930738

    +++++++++++++

    0040117D  |.  FF15 20604000 CALL DWORD PTR DS:[<&kernel32.CreateFile>; \CreateFileA
    00401183  |.  8BF8          MOV EDI,EAX 。。。。。。这里

    ++++++++++++++++++

    再往上下看,晕!

    0040113A  /$  55            PUSH EBP
    0040113B  |.  8BEC          MOV EBP,ESP
    0040113D  |.  81EC 98020000 SUB ESP,298
    00401143  |.  53            PUSH EBX
    00401144  |.  56            PUSH ESI
    00401145  |.  57            PUSH EDI
    00401146  |.  8D85 6CFEFFFF LEA EAX,DWORD PTR SS:[EBP-194]
    0040114C  |.  68 04010000   PUSH 104                                 ; /BufSize = 104 (260.)
    00401151  |.  50            PUSH EAX                                 ; |PathBuffer
    00401152  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]                ; |hModule
    00401155  |.  33DB          XOR EBX,EBX                              ; |
    00401157  |.  895D FC       MOV DWORD PTR SS:[EBP-4],EBX             ; |
    0040115A  |.  895D F8       MOV DWORD PTR SS:[EBP-8],EBX             ; |
    0040115D  |.  895D F0       MOV DWORD PTR SS:[EBP-10],EBX            ; |
    00401160  |.  FF15 24604000 CALL DWORD PTR DS:[<&kernel32.GetModuleF>; \GetModuleFileNameA
    00401166  |.  53            PUSH EBX                                 ; /hTemplateFile => NULL
    00401167  |.  68 80000000   PUSH 80                                  ; |Attributes = NORMAL
    0040116C  |.  6A 03         PUSH 3                                   ; |Mode = OPEN_EXISTING
    0040116E  |.  53            PUSH EBX                                 ; |pSecurity => NULL
    0040116F  |.  6A 01         PUSH 1                                   ; |ShareMode = FILE_SHARE_READ
    00401171  |.  8D85 6CFEFFFF LEA EAX,DWORD PTR SS:[EBP-194]           ; |
    00401177  |.  68 00000080   PUSH 80000000                            ; |Access = GENERIC_READ
    0040117C  |.  50            PUSH EAX                                 ; |FileName
    0040117D  |.  FF15 20604000 CALL DWORD PTR DS:[<&kernel32.CreateFile>; \CreateFileA
    00401183  |.  8BF8          MOV EDI,EAX 。。。。。。这里
    00401185  |.  83FF FF       CMP EDI,-1
    00401188  |.  75 0C         JNZ SHORT UnPL_6_0.00401196
    0040118A  |.  C745 FC C0714>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004071>;  ASCII "Can't open file!"
    00401191  |.  E9 37030000   JMP UnPL_6_0.004014CD
    00401196  |>  8B35 1C604000 MOV ESI,DWORD PTR DS:[<&kernel32.SetFile>;  kernel32.SetFilePointer
    0040119C  |.  6A 02         PUSH 2                                   ; /Origin = FILE_END
    0040119E  |.  53            PUSH EBX                                 ; |pOffsetHi
    0040119F  |.  6A F8         PUSH -8                                  ; |OffsetLo = FFFFFFF8 (-8.)
    004011A1  |.  57            PUSH EDI                                 ; |hFile
    004011A2  |.  FFD6          CALL ESI                                 ; \SetFilePointer
    004011A4  |.  3D E8030000   CMP EAX,3E8
    004011A9  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX
    004011AC  |.  0F82 FD020000 JB UnPL_6_0.004014AF
    004011B2  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
    004011B5  |.  53            PUSH EBX                                 ; /pOverlapped
    004011B6  |.  50            PUSH EAX                                 ; |pBytesRead
    004011B7  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]            ; |
    004011BA  |.  6A 08         PUSH 8                                   ; |BytesToRead = 8
    004011BC  |.  50            PUSH EAX                                 ; |Buffer
    004011BD  |.  57            PUSH EDI                                 ; |hFile
    004011BE  |.  895D E4       MOV DWORD PTR SS:[EBP-1C],EBX            ; |
    004011C1  |.  FF15 18604000 CALL DWORD PTR DS:[<&kernel32.ReadFile>] ; \ReadFile
    004011C7  |.  85C0          TEST EAX,EAX
    004011C9  |.  0F84 E9020000 JE UnPL_6_0.004014B8
    004011CF  |.  837D E4 08    CMP DWORD PTR SS:[EBP-1C],8
    004011D3  |.  0F85 DF020000 JNZ UnPL_6_0.004014B8
    004011D9  |.  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]
    004011DC  |.  817D E0 A5B79>CMP DWORD PTR SS:[EBP-20],829AB7A5
    004011E3  |.  8945 08       MOV DWORD PTR SS:[EBP+8],EAX
    004011E6  |.  0F85 C3020000 JNZ UnPL_6_0.004014AF
    004011EC  |.  83F8 04       CMP EAX,4
    004011EF  |.  0F8C BA020000 JL UnPL_6_0.004014AF
    004011F5  |.  3B45 F4       CMP EAX,DWORD PTR SS:[EBP-C]
    004011F8  |.  0F8D B1020000 JGE UnPL_6_0.004014AF
    004011FE  |.  50            PUSH EAX
    004011FF  |.  E8 32220000   CALL UnPL_6_0.00403436
    00401204  |.  3BC3          CMP EAX,EBX
    00401206  |.  59            POP ECX
    00401207  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
    0040120A  |.  0F84 07010000 JE UnPL_6_0.00401317
    00401210  |.  6A 02         PUSH 2
    00401212  |.  53            PUSH EBX
    00401213  |.  6A F8         PUSH -8
    00401215  |.  895D E8       MOV DWORD PTR SS:[EBP-18],EBX
    00401218  |.  58            POP EAX
    00401219  |.  2B45 08       SUB EAX,DWORD PTR SS:[EBP+8]
    0040121C  |.  50            PUSH EAX
    0040121D  |.  57            PUSH EDI
    0040121E  |.  FFD6          CALL ESI
    00401220  |.  83F8 FF       CMP EAX,-1
    00401223  |.  0F84 7D020000 JE UnPL_6_0.004014A6
    00401229  |.  8B75 F8       MOV ESI,DWORD PTR SS:[EBP-8]
    0040122C  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
    0040122F  |.  53            PUSH EBX                                 ; /pOverlapped
    00401230  |.  50            PUSH EAX                                 ; |pBytesRead
    00401231  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]                ; |BytesToRead
    00401234  |.  56            PUSH ESI                                 ; |Buffer
    00401235  |.  57            PUSH EDI                                 ; |hFile
    00401236  |.  FF15 18604000 CALL DWORD PTR DS:[<&kernel32.ReadFile>] ; \ReadFile
    0040123C  |.  85C0          TEST EAX,EAX
    0040123E  |.  0F84 62020000 JE UnPL_6_0.004014A6
    00401244  |.  8B45 08       MOV EAX,DWORD PTR SS:[EBP+8]
    00401247  |.  3945 E8       CMP DWORD PTR SS:[EBP-18],EAX
    0040124A  |.  0F85 56020000 JNZ UnPL_6_0.004014A6
    00401250  |.  813E A5B79A82 CMP DWORD PTR DS:[ESI],829AB7A5
    00401256  |.  0F85 4A020000 JNZ UnPL_6_0.004014A6
    0040125C  |.  8D85 6CFEFFFF LEA EAX,DWORD PTR SS:[EBP-194]
    00401262  |.  83C6 04       ADD ESI,4
    00401265  |.  50            PUSH EAX                                 ; /Buffer
    00401266  |.  68 04010000   PUSH 104                                 ; |BufSize = 104 (260.)
    0040126B  |.  FF15 14604000 CALL DWORD PTR DS:[<&kernel32.GetTempPat>; \GetTempPathA
    00401271  |.  85C0          TEST EAX,EAX
    00401273  |.  75 0C         JNZ SHORT UnPL_6_0.00401281
    00401275  |.  C745 FC 98714>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004071>;  ASCII "Can't retrieve the temporary directory!"
    0040127C  |.  E9 3E020000   JMP UnPL_6_0.004014BF
    00401281  |>  8B06          MOV EAX,DWORD PTR DS:[ESI]
    00401283  |.  83C6 04       ADD ESI,4
    00401286  |.  50            PUSH EAX                                 ; /<%X>
    00401287  |.  8D85 70FFFFFF LEA EAX,DWORD PTR SS:[EBP-90]            ; |
    0040128D  |.  68 90714000   PUSH UnPL_6_0.00407190                   ; |Format = "E_%X"
    00401292  |.  50            PUSH EAX                                 ; |s
    00401293  |.  FF15 B0604000 CALL DWORD PTR DS:[<&user32.wsprintfA>]  ; \wsprintfA
    00401299  |.  8D85 70FFFFFF LEA EAX,DWORD PTR SS:[EBP-90]
    0040129F  |.  50            PUSH EAX
    004012A0  |.  8D85 6CFEFFFF LEA EAX,DWORD PTR SS:[EBP-194]
    004012A6  |.  50            PUSH EAX
    004012A7  |.  E8 24200000   CALL UnPL_6_0.004032D0
    004012AC  |.  83C4 14       ADD ESP,14
    004012AF  |.  8D85 6CFEFFFF LEA EAX,DWORD PTR SS:[EBP-194]
    004012B5  |.  53            PUSH EBX                                 ; /pSecurity
    004012B6  |.  50            PUSH EAX                                 ; |Path
    004012B7  |.  FF15 10604000 CALL DWORD PTR DS:[<&kernel32.CreateDire>; \CreateDirectoryA
    004012BD  |.  8D85 6CFEFFFF LEA EAX,DWORD PTR SS:[EBP-194]
    004012C3  |.  68 8C714000   PUSH UnPL_6_0.0040718C
    004012C8  |.  50            PUSH EAX
    004012C9  |.  E8 02200000   CALL UnPL_6_0.004032D0
    004012CE  |.  FF36          PUSH DWORD PTR DS:[ESI]
    004012D0  |.  836D 08 0C    SUB DWORD PTR SS:[EBP+8],0C
    004012D4  |.  8D7E 04       LEA EDI,DWORD PTR DS:[ESI+4]
    004012D7  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]
    004012DA  |.  57            PUSH EDI
    004012DB  |.  E8 39FEFFFF   CALL UnPL_6_0.00401119
    004012E0  |.  836D 08 08    SUB DWORD PTR SS:[EBP+8],8
    004012E4  |.  8B47 04       MOV EAX,DWORD PTR DS:[EDI+4]
    004012E7  |.  83C4 14       ADD ESP,14
    004012EA  |.  395D 08       CMP DWORD PTR SS:[EBP+8],EBX
    004012ED  |.  8945 EC       MOV DWORD PTR SS:[EBP-14],EAX
    004012F0  |.  0F8E A7010000 JLE UnPL_6_0.0040149D
    004012F6  |.  813F 0D0F3E03 CMP DWORD PTR DS:[EDI],33E0F0D
    004012FC  |.  0F85 9B010000 JNZ UnPL_6_0.0040149D
    00401302  |.  3BC3          CMP EAX,EBX
    00401304  |.  0F8E 93010000 JLE UnPL_6_0.0040149D
    0040130A  |.  50            PUSH EAX
    0040130B  |.  E8 26210000   CALL UnPL_6_0.00403436
    00401310  |.  8BF0          MOV ESI,EAX
    00401312  |.  59            POP ECX
    00401313  |.  3BF3          CMP ESI,EBX
    00401315  |.  75 0C         JNZ SHORT UnPL_6_0.00401323
    00401317  |>  C745 FC 74714>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004071>;  ASCII "Insufficient memory!"
    0040131E  |.  E9 9C010000   JMP UnPL_6_0.004014BF
    00401323  |>  FF75 08       PUSH DWORD PTR SS:[EBP+8]
    00401326  |.  83C7 08       ADD EDI,8
    00401329  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
    0040132C  |.  57            PUSH EDI
    0040132D  |.  50            PUSH EAX
    0040132E  |.  56            PUSH ESI
    0040132F  |.  E8 E71E0000   CALL UnPL_6_0.0040321B
    00401334  |.  83C4 10       ADD ESP,10
    00401337  |.  85C0          TEST EAX,EAX
    00401339  |.  74 13         JE SHORT UnPL_6_0.0040134E
    0040133B  |.  56            PUSH ESI
    0040133C  |.  E8 EA200000   CALL UnPL_6_0.0040342B
    00401341  |.  59            POP ECX
    00401342  |.  C745 FC 58714>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004071>;  ASCII "Failed to decompress data!"
    00401349  |.  E9 71010000   JMP UnPL_6_0.004014BF
    0040134E  |>  FF75 F8       PUSH DWORD PTR SS:[EBP-8]
    00401351  |.  E8 D5200000   CALL UnPL_6_0.0040342B
    00401356  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
    00401359  |.  59            POP ECX
    0040135A  |.  03C6          ADD EAX,ESI
    0040135C  |.  8975 F8       MOV DWORD PTR SS:[EBP-8],ESI
    0040135F  |.  3BF0          CMP ESI,EAX
    00401361  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX
    00401364  |.  885D A4       MOV BYTE PTR SS:[EBP-5C],BL
    00401367  |.  0F83 B4000000 JNB UnPL_6_0.00401421
    0040136D  |>  8BFE          /MOV EDI,ESI
    0040136F  |.  56            |PUSH ESI
    00401370  |.  897D 08       |MOV DWORD PTR SS:[EBP+8],EDI
    00401373  |.  E8 38200000   |CALL UnPL_6_0.004033B0
    00401378  |.  C70424 4C7140>|MOV DWORD PTR SS:[ESP],UnPL_6_0.0040714>;  ASCII "krnln.fnr"
    0040137F  |.  57            |PUSH EDI
    00401380  |.  8D7406 01     |LEA ESI,DWORD PTR DS:[ESI+EAX+1]
    00401384  |.  E8 47480000   |CALL UnPL_6_0.00405BD0
    00401389  |.  59            |POP ECX
    0040138A  |.  85C0          |TEST EAX,EAX
    0040138C  |.  59            |POP ECX
    0040138D  |.  74 11         |JE SHORT UnPL_6_0.004013A0
    0040138F  |.  68 40714000   |PUSH UnPL_6_0.00407140                  ;  ASCII "krnln.fne"
    00401394  |.  57            |PUSH EDI
    00401395  |.  E8 36480000   |CALL UnPL_6_0.00405BD0
    0040139A  |.  59            |POP ECX
    0040139B  |.  85C0          |TEST EAX,EAX
    0040139D  |.  59            |POP ECX
    0040139E  |.  75 0C         |JNZ SHORT UnPL_6_0.004013AC
    004013A0  |>  8D45 A4       |LEA EAX,DWORD PTR SS:[EBP-5C]
    004013A3  |.  57            |PUSH EDI
    004013A4  |.  50            |PUSH EAX
    004013A5  |.  E8 161F0000   |CALL UnPL_6_0.004032C0
    004013AA  |.  59            |POP ECX
    004013AB  |.  59            |POP ECX
    004013AC  |>  8B3E          |MOV EDI,DWORD PTR DS:[ESI]
    004013AE  |.  8D85 6CFEFFFF |LEA EAX,DWORD PTR SS:[EBP-194]
    004013B4  |.  50            |PUSH EAX
    004013B5  |.  8D85 68FDFFFF |LEA EAX,DWORD PTR SS:[EBP-298]
    004013BB  |.  50            |PUSH EAX
    004013BC  |.  83C6 04       |ADD ESI,4
    004013BF  |.  E8 FC1E0000   |CALL UnPL_6_0.004032C0
    004013C4  |.  FF75 08       |PUSH DWORD PTR SS:[EBP+8]
    004013C7  |.  8D85 68FDFFFF |LEA EAX,DWORD PTR SS:[EBP-298]
    004013CD  |.  50            |PUSH EAX
    004013CE  |.  E8 FD1E0000   |CALL UnPL_6_0.004032D0
    004013D3  |.  83C4 10       |ADD ESP,10
    004013D6  |.  8D85 68FDFFFF |LEA EAX,DWORD PTR SS:[EBP-298]
    004013DC  |.  53            |PUSH EBX                                ; /hTemplateFile
    004013DD  |.  68 80000000   |PUSH 80                                 ; |Attributes = NORMAL
    004013E2  |.  6A 02         |PUSH 2                                  ; |Mode = CREATE_ALWAYS
    004013E4  |.  53            |PUSH EBX                                ; |pSecurity
    004013E5  |.  53            |PUSH EBX                                ; |ShareMode
    004013E6  |.  68 00000040   |PUSH 40000000                           ; |Access = GENERIC_WRITE
    004013EB  |.  50            |PUSH EAX                                ; |FileName
    004013EC  |.  FF15 20604000 |CALL DWORD PTR DS:[<&kernel32.CreateFil>; \CreateFileA
    004013F2  |.  83F8 FF       |CMP EAX,-1
    004013F5  |.  8945 08       |MOV DWORD PTR SS:[EBP+8],EAX
    004013F8  |.  74 17         |JE SHORT UnPL_6_0.00401411
    004013FA  |.  8D4D D8       |LEA ECX,DWORD PTR SS:[EBP-28]
    004013FD  |.  53            |PUSH EBX                                ; /pOverlapped
    004013FE  |.  51            |PUSH ECX                                ; |pBytesWritten
    004013FF  |.  57            |PUSH EDI                                ; |nBytesToWrite
    00401400  |.  56            |PUSH ESI                                ; |Buffer
    00401401  |.  50            |PUSH EAX                                ; |hFile
    00401402  |.  FF15 0C604000 |CALL DWORD PTR DS:[<&kernel32.WriteFile>; \WriteFile
    00401408  |.  FF75 08       |PUSH DWORD PTR SS:[EBP+8]               ; /hObject
    0040140B  |.  FF15 08604000 |CALL DWORD PTR DS:[<&kernel32.CloseHand>; \CloseHandle
    00401411  |>  03F7          |ADD ESI,EDI
    00401413  |.  3B75 F4       |CMP ESI,DWORD PTR SS:[EBP-C]
    00401416  |.^ 0F82 51FFFFFF \JB UnPL_6_0.0040136D
    0040141C  |.  385D A4       CMP BYTE PTR SS:[EBP-5C],BL
    0040141F  |.  75 0C         JNZ SHORT UnPL_6_0.0040142D
    00401421  |>  C745 FC 20714>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004071>;  ASCII "Not found the kernel library!"
    00401428  |.  E9 92000000   JMP UnPL_6_0.004014BF
    0040142D  |>  8D85 6CFEFFFF LEA EAX,DWORD PTR SS:[EBP-194]
    00401433  |.  50            PUSH EAX
    00401434  |.  8D85 68FDFFFF LEA EAX,DWORD PTR SS:[EBP-298]
    0040143A  |.  50            PUSH EAX
    0040143B  |.  E8 801E0000   CALL UnPL_6_0.004032C0
    00401440  |.  8D45 A4       LEA EAX,DWORD PTR SS:[EBP-5C]
    00401443  |.  50            PUSH EAX
    00401444  |.  8D85 68FDFFFF LEA EAX,DWORD PTR SS:[EBP-298]
    0040144A  |.  50            PUSH EAX
    0040144B  |.  E8 801E0000   CALL UnPL_6_0.004032D0
    00401450  |.  83C4 10       ADD ESP,10
    00401453  |.  8D85 68FDFFFF LEA EAX,DWORD PTR SS:[EBP-298]
    00401459  |.  50            PUSH EAX                                 ; /FileName
    0040145A  |.  FF15 04604000 CALL DWORD PTR DS:[<&kernel32.LoadLibrar>; \LoadLibraryA
    00401460  |.  3BC3          CMP EAX,EBX
    00401462  |.  75 09         JNZ SHORT UnPL_6_0.0040146D
    00401464  |.  C745 FC 00714>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004071>;  ASCII "Failed to load kernel library!"
    0040146B  |.  EB 52         JMP SHORT UnPL_6_0.004014BF
    0040146D  |>  68 F4704000   PUSH UnPL_6_0.004070F4                   ; /ProcNameOrOrdinal = "GetNewSock"
    00401472  |.  50            PUSH EAX                                 ; |hModule
    00401473  |.  FF15 00604000 CALL DWORD PTR DS:[<&kernel32.GetProcAdd>; \GetProcAddress
    00401479  |.  3BC3          CMP EAX,EBX
    0040147B  |.  75 09         JNZ SHORT UnPL_6_0.00401486
    0040147D  |.  C745 FC D4704>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004070>;  ASCII "The kernel library is invalid!"
    00401484  |.  EB 39         JMP SHORT UnPL_6_0.004014BF
    00401486  |>  68 E8030000   PUSH 3E8
    0040148B  |.  FFD0          CALL EAX
    0040148D  |.  3BC3          CMP EAX,EBX
    0040148F  |.  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX
    00401492  |.  75 2B         JNZ SHORT UnPL_6_0.004014BF
    00401494  |.  C745 FC A8704>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004070>;  ASCII "The interface of kernel library is invalid!"
    0040149B  |.  EB 22         JMP SHORT UnPL_6_0.004014BF
    0040149D  |>  C745 FC 8C704>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004070>;  ASCII "Invalid data in the file!"
    004014A4  |.  EB 19         JMP SHORT UnPL_6_0.004014BF
    004014A6  |>  C745 FC 5C704>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004070>;  ASCII "Failed to read file or invalid data in file!"
    004014AD  |.  EB 10         JMP SHORT UnPL_6_0.004014BF
    004014AF  |>  C745 FC 8C704>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004070>;  ASCII "Invalid data in the file!"
    004014B6  |.  EB 15         JMP SHORT UnPL_6_0.004014CD
    004014B8  |>  C745 FC 38704>MOV DWORD PTR SS:[EBP-4],UnPL_6_0.004070>;  ASCII "Failed to read data from the file!"
    004014BF  |>  395D F8       CMP DWORD PTR SS:[EBP-8],EBX
    004014C2  |.  74 09         JE SHORT UnPL_6_0.004014CD
    004014C4  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]
    004014C7  |.  E8 5F1F0000   CALL UnPL_6_0.0040342B
    004014CC  |.  59            POP ECX
    004014CD  |>  395D FC       CMP DWORD PTR SS:[EBP-4],EBX             ; |
    004014D0  |.  75 13         JNZ SHORT UnPL_6_0.004014E5              ; |
    004014D2  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]            ; |
    004014D5  |.  E8 00000000   CALL UnPL_6_0.004014DA                   ; \UnPL_6_0.004014DA
    004014DA  |$  810424 267B00>ADD DWORD PTR SS:[ESP],7B26
    004014E1  |.  FFD0          CALL EAX
    004014E3  |.  EB 11         JMP SHORT UnPL_6_0.004014F6
    004014E5  |>  6A 10         PUSH 10                                  ; /Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
    004014E7  |.  68 30704000   PUSH UnPL_6_0.00407030                   ; |Title = "Error"
    004014EC  |.  FF75 FC       PUSH DWORD PTR SS:[EBP-4]                ; |Text
    004014EF  |.  53            PUSH EBX                                 ; |hOwner
    004014F0  |.  FF15 AC604000 CALL DWORD PTR DS:[<&user32.MessageBoxA>>; \MessageBoxA
    004014F6  |>  5F            POP EDI
    004014F7  |.  5E            POP ESI
    004014F8  |.  33C0          XOR EAX,EAX
    004014FA  |.  5B            POP EBX
    004014FB  |.  C9            LEAVE
    004014FC  \.  C2 1000       RETN 10

    +++++++++++++++=这么多的jump,猫被吓着啦!

    +++++++++++
    以前学习VB去自检验的时候,飘云老大提示把程序的入口改跳到这段代码的返回。

    在这个程序不同,希望懂的朋友赐教,谢谢!










    ------------------------------------------------------------------------
    感谢风球兄和所有飘云阁的兄弟们提供这么好的学习环境,建议有志于学习提高的朋友来飘云阁玩!
    这个Keygen的音乐真的很好听!
    ------------------------------------------------------------------------
    【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

    [ 本帖最后由 野猫III 于 2006-5-14 10:42 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-5-14 11:14:11 | 显示全部楼层
    没有自校验的```呵

    我那个注册机是用易语言写的,我说过了,脱壳后要处理附加数据部分(即[Overlay]部分)
    原帖由 风球 于 2006-5-13 17:29 发表
    脱壳还是简单的,方法跟我上次做的那个动画演示一样,只是脱壳后易语言要处理附加数据部分

    处理附加数据部分简单的方法可以用,直接用PEID的Overlay插件轻松搞定,也可以WinHEX粘贴进去(这个好像飘云做过动画演示的).
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

     楼主| 发表于 2006-5-14 11:17:16 | 显示全部楼层
    原帖由 风球 于 2006-5-14 11:14 发表
    没有自校验的```呵

    我那个注册机是用易语言写的,我说过了,脱壳后要处理附加数据部分(即部分)

    处理附加数据部分简单的方法可以用,直接用PEID的Overlay插件轻松搞定,也可以WinHEX粘贴进去(这个好像飘云做过动 ...



    猫太笨了,希望风球兄再给点指示!

    所提及的东东猫不知道在那里。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-5-14 11:34:51 | 显示全部楼层
    没接触过很多都会误认为是自校验的, 易语言通常脱壳后都要处理OVERLAY的

    下面是两篇关于overlay处理的文章,可能不一定看得懂,有兴趣的可以详细去学习了解一下

    http://bbs.pediy.com/showthread. ... D%BE%DD%CE%CA%CC%E2

    http://bbs.pediy.com/showthread. ... D%BE%DD%CE%CA%CC%E2


    最简单方便的方法就是直接用软件 overlay 最终版,

    或者用WinHEX的找0000的方法可参考飘云的动画--多功能通讯录 1.2 脱壳+尾部数据处理+算法 一条龙
    https://www.chinapyg.com/viewthr ... &extra=page%3D1

    附件是作者刚发布不久的 overlay 最终版

    [ 本帖最后由 风球 于 2006-5-14 14:30 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

     楼主| 发表于 2006-5-14 16:25:40 | 显示全部楼层
    原帖由 风球 于 2006-5-14 11:34 发表
    没接触过很多都会误认为是自校验的, 易语言通常脱壳后都要处理OVERLAY的



    最简单方便的方法就是直接用软件 overlay 最终版,

    或者用WinHEX的找0000的方法可参考飘云的动画--多功能通讯录 1.2 脱壳+尾部数 ...


    Good!试下!

    太爽啦!用软件自动可以搞定!

    [ 本帖最后由 野猫III 于 2006-5-14 16:27 编辑 ]
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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