|
最近有点颓废啊,翻开160个CrackMe玩玩。刚被老爹教训完,试试看去除NAG。
160个CrackMe,没有的话下载地址是:
一、25号CrackMe,VB5 Native Code
这个是倒计时,等到了0按钮就会变为可用。
直接打开VB Decompiler Pro反编译看看。
运行后主窗口成功出现,25号CrackMe收工。
顺便来吐槽一下这个CrackMe的一个BUG,NAG窗口不是主窗口,如果你直接在没有载入主窗口前就关掉了NAG窗口,那么,,,你需要在任务管理器里面把它干掉。
二、42号CrackMe,MASM
这个CrackMe有点无聊,说实在的,不是一般的无聊。
作者定义的规则如下:
yes, it definately is just a messagebox...
remove this messagebox.
no patching allowed, no processpatching allowed (of the reverseme's process).
maybe code a little processpatcher of a different process, or a tiny vxd..
什么意思呢?意思是说,你不能改这个进程的内存,不能改这个文件,你可能需要补丁一个不同的进程,或者干脆搞一个VXD(VXD是WIN 9X下的驱动模型)。
其实如果从进程内存模型认真来说的话,每个进程的0x80000000以后的内存都是一样的,在内核干HOOK,不脱了裤子放P吗?
原谅我,我的脑洞不够大。我只能无耻的写一个Loader了。用Drx调试寄存器,我可没Patch你。
Loader源码:
[Asm] 纯文本查看 复制代码 .686
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
include user32.inc
includelib kernel32.lib
includelib user32.lib
dwBreakPoint equ <401000h>
dwNewEip equ <401013h>
.data
szFile db '.\defiler.2.exe',0
szError db 'defiler.2.exe不在当前目录下',0
szOK db '补丁成功,成功绕过MessageBox',0
szTitle db '提示',0
.code
Main proc
ALIGN 4
LOCAL @si:STARTUPINFO
LOCAL @pi:PROCESS_INFORMATION
LOCAL @dbg:DEBUG_EVENT
LOCAL @ct:CONTEXT
mov @ct.ContextFlags,CONTEXT_FULL or CONTEXT_DEBUG_REGISTERS
invoke RtlZeroMemory,addr @si,sizeof @si
invoke RtlZeroMemory,addr @pi,sizeof @pi
mov @si.cb,sizeof @si
lea eax,@si
lea ebx,@si
invoke CreateProcess,offset szFile,NULL,NULL,NULL,FALSE,DEBUG_PROCESS or DEBUG_ONLY_THIS_PROCESS,NULL,NULL,eax,ebx
.if !eax
invoke MessageBox,0,offset szError,offset szTitle,MB_OK
invoke ExitProcess,0
.endif
.while TRUE
invoke WaitForDebugEvent,addr @dbg,INFINITE
.if @dbg.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT ;程序退出
invoke ContinueDebugEvent,@dbg.dwProcessId,@dbg.dwThreadId,DBG_CONTINUE
invoke ExitProcess,0
.elseif @dbg.dwDebugEventCode == EXCEPTION_DEBUG_EVENT ;调试事件
.if @dbg.u.Exception.pExceptionRecord.ExceptionCode == EXCEPTION_SINGLE_STEP
.if @dbg.u.Exception.pExceptionRecord.ExceptionAddress == dwBreakPoint
invoke OpenThread,THREAD_ALL_ACCESS,FALSE,@dbg.dwThreadId
mov ebx,eax
invoke GetThreadContext,ebx,addr @ct
mov @ct.regEip,dwNewEip
invoke SetThreadContext,ebx,addr @ct
invoke CloseHandle,ebx
invoke MessageBox,0,offset szOK,offset szTitle,MB_OK
.endif
.endif
invoke ContinueDebugEvent,@dbg.dwProcessId,@dbg.dwThreadId,DBG_CONTINUE
.elseif @dbg.dwDebugEventCode == CREATE_PROCESS_DEBUG_EVENT ;创建
invoke OpenThread,THREAD_ALL_ACCESS,FALSE,@dbg.dwThreadId
mov ebx,eax
invoke GetThreadContext,ebx,addr @ct
mov @ct.iDr0,dwBreakPoint
mov @ct.iDr7,101h
invoke SetThreadContext,ebx,addr @ct
invoke CloseHandle,ebx
invoke ContinueDebugEvent,@dbg.dwProcessId,@dbg.dwThreadId,DBG_CONTINUE
.else
invoke ContinueDebugEvent,@dbg.dwProcessId,@dbg.dwThreadId,DBG_CONTINUE
.endif
.endw
invoke ExitProcess,0
Main endp
_START:
call Main
end _START
编译后丢到CrackMe的同一目录,打开NAG已经没有了。
三、145号 Delphi
打开资源编辑工具,找到RCDATA。看看(要支持解析Delphi Form数据的)
玩Delphi这么久了,居然不知道还有这个属性。
看字段应该是延迟装入,里面有个事件,应该是装入完后的响应。
把6000改0,保存看看。
四、我自己临时写的 Delphi【Delphi的push窗体】
工程的.dpr文件如下,这里才是程序真正的入口点。
[Delphi] 纯文本查看 复制代码 program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
Delphi的register传递方式:
保存(有重定位提示不用管)
上面,Form1是NAG窗口,也是第一个载入的窗口,CreateForm的时候,我们用TForm2(主窗口),来初始化了Form1。
Delphi的窗口有自动创建与手动创建之分,手动创建还没看。这里是玩了那第3个Delphi CM的时候临时加的,有些东西我也不是很明白。不多说了,看VCL源码去也。
|
评分
-
参与人数 21 | 威望 +1 |
HB +57 |
THX +13 |
收起
理由
|
居然要中文
| |
+ 1 |
|
[吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守! |
禽大师
| |
|
+ 1 |
|
叁壹伍
| |
+ 1 |
|
|
sjtkxy
| |
+ 1 |
|
|
一路走来不容易
| |
+ 1 |
|
|
消逝的过去
| |
|
+ 1 |
|
temp
| |
+ 1 |
|
|
风里去
| |
|
+ 1 |
[吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少! |
lies
| |
|
+ 1 |
|
拿着雪糕
| |
+ 1 |
+ 1 |
|
brswbx201610
| |
|
+ 1 |
|
bnjzzheng
| |
+ 1 |
|
[吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守! |
淡灬看夏丶恋雨
| |
+ 1 |
|
|
ghostxu
| |
+ 1 |
|
[吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守! |
zxjzzh
| |
+ 5 |
+ 1 |
[快捷评语] - 吃水不忘打井人,给个评分懂感恩! |
海天一色001
| |
|
+ 1 |
[快捷评语] - 吃水不忘打井人,给个评分懂感恩! |
OSVince
| |
+ 5 |
+ 1 |
[快捷评语] - 吃水不忘打井人,给个评分懂感恩! |
syzh802618
| |
+ 1 |
+ 1 |
[快捷评语] - 2018,狗年发发发,狗年旺旺旺! |
DDK4282
| |
+ 2 |
+ 1 |
急忙找不见加分键。呵呵 |
insane
| |
+ 5 |
+ 1 |
[快捷评语] - 2018,狗年发发发,狗年旺旺旺! |
Shark恒
| + 1 |
+ 30 |
+ 1 |
有意思有意思,虽然没时间动手分析,但是看着也好玩! |
查看全部评分
|