黑夜彩虹 发表于 2007-3-2 08:23:44

等我,我也写个CM~~~;P

ww-jack 发表于 2007-3-2 11:08:02

期待完美的分析!~
准备更加完善的CRACKME中!~

不懂算法 发表于 2007-3-6 00:24:16

楼主真不厚道,antidebug做的太那个了
解决办法bp TerminateProcess
然后跳过那个ZwTerminateProcess执行到程序代码就到关键地方了
一共四处antidebug,初始化一个,注册算法的那个函数里面竟然放了3个,放一个不就好了么?
检测父进程PID号是否等于explorer.exe,进程有两个explorer进程也不行,而且程序会执行一次系统explorer程序
算法不是很难,我都能分析出来肯定不难了,呵呵,丢个注册机

.386
.model flat,stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\comctl32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\comctl32.lib

dlgproc proto :DWORD,:DWORD,:DWORD,:DWORD

.const

.data
szName                db 040h dup (0)
szSerial        db 0C0h dup (0)
szKey                db 0,0,"EFBD45A79813C602P.Y.G_WW-JACK_2007_02",8Dh,40h,0
                db "www.chinapyg.com7894561230",0
szTmp                db 05h dup (0)
szFormat        db "%d",0

.data?
hInstance        dd ?

.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,eax,101,NULL,offset dlgproc,0
invoke ExitProcess,NULL

dlgproc proc hWnd:DWORD,wMsg:DWORD,wParam:DWORD,lParam:DWORD
moveax,wMsg
.ifeax == WM_CLOSE
        invokeEndDialog,hWnd,NULL
.elseifeax == WM_INITDIALOG
        invoke LoadIcon,hInstance,1
        invoke SendMessage,hWnd,WM_SETICON,0,eax
.elseifeax == WM_COMMAND
        moveax,wParam
        .ifeax == 1002
                invokeGetDlgItemText,hWnd,1001,addr szName,30h
                mov esi,eax
                mov ebx,offset szName
                add ebx,eax
                invokeGetDlgItemText,hWnd,1000,ebx,10h
                add esi,eax
                xor edi,edi
                mov byte ptr ds:,0
                .while edi<esi
                        mov dl,byte ptr ds:
                        xor dl,byte ptr ds:
                        and dl,byte ptr ds:
                        invoke wsprintf,addr szTmp,addr szFormat,dl
                        invoke lstrcat,addr szSerial,addr szTmp
                        inc edi
                .endw
                invoke lstrlen,addr szSerial
                .while eax
                        dec eax
                        mov dl,byte ptr ds:
                        .if dl=='1'
                                mov byte ptr ds:,'8'
                        .elseif dl=='2'
                                mov byte ptr ds:,'9'
                        .elseif dl=='3'
                                mov byte ptr ds:,'4'
                        .elseif dl=='4'
                                mov byte ptr ds:,'5'
                        .elseif dl=='5'
                                mov byte ptr ds:,'6'
                        .elseif dl=='6'
                                mov byte ptr ds:,'1'
                        .elseif dl=='7'
                                mov byte ptr ds:,'2'
                        .elseif dl=='8'
                                mov byte ptr ds:,'3'
                        .elseif dl=='9'
                                mov byte ptr ds:,'0'
                        .elseif dl=='0'
                                mov byte ptr ds:,'7'
                        .endif
                .endw
                invoke SetDlgItemText,hWnd,1002,addr szSerial

        .endif
.else
        moveax,FALSE
        ret
.endif      
moveax,TRUE
ret
dlgproc endp

end start

--------------------------------------------------
#include "\masm32\include\resource.h"
1 icon main.ico
101 DIALOG DISCARDABLE300, 200, 120, 80
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Keygen for ww-jack crackme"
FONT 8, "新宋体"
BEGIN
    LTEXT         "Code:",-1,7,10,28,9
    EDITTEXT      1000,35,7,78,12,ES_AUTOHSCROLL
    LTEXT         "Name:",-1,7,28,28,9
    EDITTEXT      1001,35,25,78,12,ES_AUTOHSCROLL
    LTEXT         "Serial:",-1,7,46,28,9
    EDITTEXT      1002,35,43,78,12,ES_AUTOHSCROLL
    PUSHBUTTON      "&KeyGen",1002,45,60,40,13
END

[ 本帖最后由 不懂算法 于 2007-3-6 00:27 编辑 ]

lgjxj 发表于 2007-3-6 07:25:27

楼上的兄弟强,佩服

ww-jack 发表于 2007-3-6 18:24:01

原帖由 不懂算法 于 2007-3-6 00:24 发表
楼主真不厚道,antidebug做的太那个了
解决办法bp TerminateProcess
然后跳过那个ZwTerminateProcess执行到程序代码就到关键地方了
一共四处antidebug,初始化一个,注册算法的那个函数里面竟然放了3个,放一 ...

不懂算法帮忙换个名字吧!~
你都这个名字我们怎么办啊!~
完美完美完美完美完美分析!~

可惜我无权加分:L

ww-jack 发表于 2007-3-6 18:25:13

最近在做别的东西!~
等空了我在写个!~呵呵~

caterpilla 发表于 2007-3-7 21:04:56

原帖由 不懂算法 于 2007-3-6 00:24 发表
楼主真不厚道,antidebug做的太那个了
解决办法bp TerminateProcess
然后跳过那个ZwTerminateProcess执行到程序代码就到关键地方了
一共四处antidebug,初始化一个,注册算法的那个函数里面竟然放了3个,放一 ...
厉害,学习了。。。。。。。。。。

caterpilla 发表于 2007-3-7 21:06:23

原帖由 飘云 于 2007-3-2 00:36 发表
进入DLL,搜索:cmp   dword ptr , 1   即可解除ANTI

关键点如下,往上就是算法:

检测父进程,还是DLL注入,没详看~~

哈哈,只有注册了才能欣赏到更美的LOGO~~~/fad /fad
飘云总是这么轻松突破,能否介绍一下思路啊。。。。。。。。。。
页: 1 [2]
查看完整版本: 第二个carckme希望大家支持一下(增加未加壳版)