hackjam 发表于 2019-1-16 02:31

.net混淆CrackMe3

本帖最后由 hackjam 于 2019-1-16 16:41 编辑

.net混淆CrackMe3
之前的:
.net混淆CrackMe1 -> https://www.52pojie.cn/thread-853485-1-1.html
.net混淆CrackMe2 -> https://www.52pojie.cn/thread-853763-1-1.html

破解前:


破解后:























提示: 可能是某开源混淆器?



GJH588 发表于 2019-1-17 11:11

我作为一个OD使用者!很菜!我也没看出你的算法,不过我可以断点直接爆破:lol,说真的,这个我用od试了2小时,没有头绪,真心没找到真密码,可能是太菜了

艾莉希雅 发表于 2019-1-17 15:10


using System;
using System.Text;
using System.Xml;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
using System.Diagnostics;
using System.Runtime.InteropServices;
#####
K();
#####

public enum ThreadAccess : int
{
    TERMINATE = (0x0001),
    SUSPEND_RESUME = (0x0002),
    GET_CONTEXT = (0x0008),
    SET_CONTEXT = (0x0010),
    SET_INFORMATION = (0x0020),
    QUERY_INFORMATION = (0x0040),
    SET_THREAD_TOKEN = (0x0080),
    IMPERSONATE = (0x0100),
    DIRECT_IMPERSONATION = (0x0200)
}


static extern IntPtr OpenThread(ThreadAccess dwDesiredAccess, bool bInheritHandle, uint dwThreadId);

static extern uint SuspendThread(IntPtr hThread);

static extern int ResumeThread(IntPtr hThread);

static extern bool CloseHandle(IntPtr handle);

private static void __sp(int pid)
{
    var process = Process.GetProcessById(pid);
    if (process.ProcessName == string.Empty)
      return;
    foreach (ProcessThread pT in process.Threads)
    {
      IntPtr pOpenThread = OpenThread(ThreadAccess.SUSPEND_RESUME, false, (uint)pT.Id);

      if (pOpenThread == IntPtr.Zero)
      {
            continue;
      }
      SuspendThread(pOpenThread);
      CloseHandle(pOpenThread);
    }
   
    MessageBox.Show("Õo塤W,tëó,JÆtéòÎ$6a±tßçaf0÷ˉW*)Z376TÔtæ>Åxûòé߶a4ûÕÖ¿Vèzò");
}

private static void K() {
    Process[] p_list = Process.GetProcessesByName("dnspy");
    if (p_list != null && p_list.Length > 0)
    {
      __sp(p_list.Id);
    }
    p_list = Process.GetProcessesByName("dnspy-x86");
    if (p_list != null && p_list.Length > 0)
    {
      __sp(p_list.Id);
    }
    p_list = Process.GetProcessesByName("dnspy-x64");
    if (p_list != null && p_list.Length > 0)
    {
      __sp(p_list.Id);
    }
    p_list = Process.GetProcessesByName("吾爱破解");
    if (p_list != null && p_list.Length > 0)
    {
      __sp(p_list.Id);
    }
    p_list = Process.GetProcessesByName("OllyDBG");
    if (p_list != null && p_list.Length > 0)
    {
      __sp(p_list.Id);
    }
}
你所要做的就是把调试器改个名字
接下来就是该怎么啪怎么啪
你们就不用写寒假作业吗(望天

wgh1256 发表于 2019-1-16 10:00

本帖最后由 wgh1256 于 2019-1-16 13:47 编辑

误判不会有。

此刻i 发表于 2019-1-16 10:24

本帖最后由 此刻i 于 2019-1-16 22:46 编辑

楼主给力啊https://t.cn/Eqn2Zz8https://t.cn/Eqn2Zz8

raistlin 发表于 2019-1-16 11:22

用心讨论,共获提升!

凉游浅笔深画眉 发表于 2019-1-16 16:10

本帖最后由 凉游浅笔深画眉 于 2019-1-16 16:16 编辑


楼主是打算在2019年happy一波?

wwh1004 发表于 2019-1-16 22:34


2019-happy

hackjam 发表于 2019-1-16 23:11

凉游浅笔深画眉 发表于 2019-1-16 16:10
楼主是打算在2019年happy一波?

具体的细节呢

hackjam 发表于 2019-1-16 23:13

wwh1004 发表于 2019-1-16 22:34
2019-happy

具体的过程是否晚点可分享下.

wwh1004 发表于 2019-1-16 23:50

hackjam 发表于 2019-1-16 23:13
具体的过程是否晚点可分享下.

rar自解压,codecracker工具全套来一波,de4dot清理

wwh1004 发表于 2019-1-16 23:50

hackjam 发表于 2019-1-16 23:13
具体的过程是否晚点可分享下.

然后里面动态生成程序集反dnspy,od之类的东西,我记得是暂停主线程来着
页: [1] 2 3
查看完整版本: .net混淆CrackMe3