吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 7161|回复: 42

[原创逆向图文] 一些CrackMe的NAG去除

  [复制链接]
李沉舟 发表于 2018-2-22 12:41 | 显示全部楼层 |阅读模式



最近有点颓废啊,翻开160个CrackMe玩玩。刚被老爹教训完,试试看去除NAG。
160个CrackMe,没有的话下载地址是:
游客,如果您要查看本帖隐藏内容请回复




一、25号CrackMe,VB5 Native Code

1.png


这个是倒计时,等到了0按钮就会变为可用。
直接打开VB Decompiler Pro反编译看看。


2.png


游客,如果您要查看本帖隐藏内容请回复


运行后主窗口成功出现,25号CrackMe收工。

5.png


顺便来吐槽一下这个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已经没有了。
1.png
游客,如果您要查看本帖隐藏内容请回复


三、145号 Delphi


1.png
打开资源编辑工具,找到RCDATA。看看(要支持解析Delphi Form数据的)
2.png
玩Delphi这么久了,居然不知道还有这个属性。
看字段应该是延迟装入,里面有个事件,应该是装入完后的响应。
把6000改0,保存看看。
3.png

四、我自己临时写的 Delphi【Delphi的push窗体】
1.png
工程的.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传递方式:



游客,如果您要查看本帖隐藏内容请回复

保存(有重定位提示不用管)
4.png

上面,Form1是NAG窗口,也是第一个载入的窗口,CreateForm的时候,我们用TForm2(主窗口),来初始化了Form1。

Delphi的窗口有自动创建与手动创建之分,手动创建还没看。这里是玩了那第3个Delphi CM的时候临时加的,有些东西我也不是很明白。不多说了,看VCL源码去也。

评分

参与人数 18威望 +1 HB +55 THX +12 收起 理由
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 有意思有意思,虽然没时间动手分析,但是看着也好玩!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2018-2-22 18:42 | 显示全部楼层

有意思有意思,虽然没时间动手分析,但是看着也好玩!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
insane 发表于 2018-2-22 19:41 | 显示全部楼层

来学习大佬的作品
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
DDK4282 发表于 2018-2-22 20:31 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
syzh802618 发表于 2018-2-22 21:15 | 显示全部楼层

楼主好眼力,赞一个
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
byh3025 发表于 2018-2-22 22:07 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
湛西哥 发表于 2018-2-22 22:46 | 显示全部楼层

感谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
1151425395 发表于 2018-2-22 23:04 | 显示全部楼层

学习了,写的挺不错的。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
妄旺仔 发表于 2018-2-23 20:25 来自手机端 | 显示全部楼层

看看学习一下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
redapple2008 发表于 2018-2-24 14:16 | 显示全部楼层

2018,狗年发发发,狗年旺旺旺!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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