吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7990|回复: 28
收起左侧

[CrackMe] 新手无壳win32小程序,猜出密码就算赢

[复制链接]
liyangjida 发表于 2017-1-12 12:43
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

本帖最后由 liyangjIDA 于 2017-1-12 14:12 编辑

下载地址:
https://pan.baidu.com/s/1ge76eDP
新手亲手制作的小程序,给新手涨点信心。
输入正确的密码会弹出恭喜:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Goddkiller 发表于 2017-1-13 10:47
本帖最后由 Goddkiller 于 2017-1-13 10:48 编辑

这什么垃圾玩意,密码还是不可见字符,无法在输入框输入。

输入密码长度16位

给出一组正确的密码的16进制的数组 “55003700e405ff01560b0013e405ee10560b2213fffff6ff3200300031003700”  自己二进制复制到输入框密码内存处,然后就OK了。

核心加密的算法就一行代码:
  r = (~a) & b
b为固定数0x0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
a就是你输入的密码

点评

别喷人啊兄弟.  发表于 2017-1-13 10:57
 楼主| liyangjida 发表于 2017-2-3 09:11
本帖最后由 liyangjida 于 2017-2-3 09:47 编辑

哈哈,那我就上源码了啊,用了一些反调试的技术,在定时器中动态判断是否处于调试状态。设置debugFlag,判断调试汇编代码:
            push eax;
            mov eax, dword ptr fs : [0x30];
            movzx eax, byte ptr ds : [eax + 2];
            mov debugFlag, eax;
            pop eax;
然后两个unicode字符数组,一个用于debug状态混淆,另一个才是正确的。
wchar_t* rightbuff = debugFlag ? dstBuff2 : dstBuff1;
wchar_t dstBuff1[11] = {0xffcd, 0xffcf, 0xffce, 0xffc8, 0xa18b, 0x9a4f, 0xa18b, 0xa014, 0xb1af, 0x00fe, 0x0000};
是正确的。
为了防止被字符串搜索到,只做了简单的取反加密,所以再把dstBuff1取反,就得到正确的unicode数组:
32 00 30 00 31 00 37 00 74 5e b0 65 74 5e eb 5f  50 4e 01 ff 00 00
2017年新年快乐!
[C++] 纯文本查看 复制代码
#include <Windows.h>
#include "resource.h"
#include <winternl.h>

int debugFlag = 1;

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_TIMER:
        __asm
        {
            push eax;
            mov eax, dword ptr fs : [0x30];
            movzx eax, byte ptr ds : [eax + 2];
            mov debugFlag, eax;
            pop eax;
        }
        break;
    case WM_SHOWWINDOW:
        SetTimer(hwnd, 1, 500, NULL);
        break;
    case WM_CLOSE:
        EndDialog(hwnd, 0);
        break;
    case WM_COMMAND:
        switch (LOWORD(wParam))
        {
        case IDC_BUTTON1:
            int len = SendMessage(GetDlgItem(hwnd, IDC_EDIT1), WM_GETTEXTLENGTH, 0, 0);
            wchar_t* buff = new wchar_t[len + 1];
            wchar_t dstBuff1[11] = {0xffcd, 0xffcf, 0xffce, 0xffc8, 0xa18b, 0x9a4f, 0xa18b, 0xa014, 0xb1af, 0x00fe, 0x0000};
            wchar_t dstBuff2[11] = {0xffaa, 0xffc8, 0xfa1b, 0xfe00, 0xf4a9, 0xecff, 0xfa1b, 0xef11, 0xf4a9, 0xecdd, 0x0000};
            wchar_t* rightbuff = debugFlag ? dstBuff2 : dstBuff1;
            SendMessage(GetDlgItem(hwnd, IDC_EDIT1), WM_GETTEXT, len + 1, (LPARAM)buff);
            char* charBuff = (char*)buff;
            for (int i = 0; i < 2 * len; ++i)
            {
                charBuff[i] = ~charBuff[i];
            }

            if (memcmp(buff, rightbuff, len) == 0 && len > 0)
            {
                MessageBox(hwnd, L"恭喜,破解成功", L"消息", MB_OK);
            }
            else
            {
                MessageBox(hwnd, L"请输入正确的密码", L"消息", MB_OK);
            }
            break;
        }
        break;
    default:
        break;
    }
    return S_OK;
}

int WINAPI WinMain(HINSTANCE hInstace, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 
{
    DialogBox(hInstace, MAKEINTRESOURCEW(IDD_DIALOG1), NULL, (DLGPROC)MainWndProc);
}

絕世丶永恒 发表于 2017-1-12 12:58
lyxi841213 发表于 2017-1-12 12:59 来自手机
哦! 没人去做
 楼主| liyangjida 发表于 2017-1-12 13:03
各位稍等,还有不严谨的地方,待我修正一下
vocaso 发表于 2017-1-12 13:08
最好啊,上个网盘啊,不然下载要cb别人懒得下
FuYunx 发表于 2017-1-12 13:21
爆破倒是可以,追码貌似挺难的,没找到!
FuYunx 发表于 2017-1-12 13:22
爆破的,追码有点头大

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
 楼主| liyangjida 发表于 2017-1-12 13:24
415291760 发表于 2017-1-12 13:22
爆破的,追码有点头大

密码经过简单的加密

免费评分

参与人数 1热心值 +1 收起 理由
KaQqi + 1 不可见密文

查看全部评分

wgz001 发表于 2017-1-12 14:02
liyangjida 发表于 2017-1-12 13:24
密码经过简单的加密

应该是有bug   不输入任何字符直接点确定就提示成功
 楼主| liyangjida 发表于 2017-1-12 14:13
wgz001 发表于 2017-1-12 14:02
应该是有bug   不输入任何字符直接点确定就提示成功

这都被发现了,已经修正,链接已经更新
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 20:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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