吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4163|回复: 21
收起左侧

[原创] 某文本编辑器逆向

[复制链接]
洋洋不得意 发表于 2020-1-21 17:01
本帖最后由 洋洋不得意 于 2020-1-21 18:17 编辑

editplus 4.3
官网 https://www.editplus.com/

逆向算法后得到如下代码
[C] 纯文本查看 复制代码
#include <stdio.h>
#include <windows.h>


wchar_t table[0x100];
wchar_t word_5F73E0[0x100];

void initTable()
{
        int i = 0;
        for (; i < 0x100; ++i)
        {
                int v = i;
                CharUpperW((wchar_t*)&v);
                table[i] = v;
        }
}

int sub_4D9470(int a, char* buff, int size)
{
        if (0 == size)
                return 0;

        int t = a;
        for (int i = 0; i < size; ++i)
        {
                int _esi = t & 0xff;
                t = t >> 8;
                _esi ^= buff[i];
                t ^= word_5F73E0[_esi];
        }
        return t;
}

int sub_4D94B0(char* buff, int buffSize, wchar_t* str, int strSize)
{
        char* t = buff;
        for (int i = 0; i < strSize; ++i)
        {
                int wSize = sprintf_s(buff, buffSize, "%04X", str[i]);
                buff += wSize;
                buffSize -= wSize;
        }
        return buff - t;
}

void init5F73E0()
{
        memset(word_5F73E0, 0, 0x200);

        for (int i = 0; i < 0x100; ++i)
        {
                int _ecx = 1;
                int _eax = 0xc0c1;

                do
                {
                        if (i & _ecx)
                        {
                                word_5F73E0[i] ^= _eax & 0xffff;
                        }
                        _eax += _eax;
                        _eax ^= 0x4003;
                        _ecx += _ecx;
                } while (_ecx < 0x100);
        }
}

bool compute(char* account, char* passwd)//校验算法
{
        int accLenth = strlen(account);
        int passwdLenth = strlen(passwd);

        init5F73E0();

        int computeNum = sub_4D9470(0, (char*)account, accLenth);
        char buff[100];
        sprintf(buff, "%02X", computeNum);
        char* p = (char*)passwd;
        if (p[2] != buff[0])
        {
                return false;
        }
        if (p[3] != buff[1])
        {
                return false;
        }

        computeNum = sub_4D9470(0, &p[2], passwdLenth - 2);
        sprintf(buff, "%02X", computeNum);

        if (p[0] != buff[0])
        {
                return false;
        }
        if (p[1] != buff[1])
        {
                return false;
        }
        return true;
}

void getPasswd(char* account, char* passwd)//注册机算法
{
	int accLenth = strlen(account);

	init5F73E0();
	int computeNum = sub_4D9470(0, (char*)account, accLenth);


	char tmp[100];
	sprintf(tmp, "%02X", computeNum);
	passwd[2] = tmp[0];
	passwd[3] = tmp[1];

	strcpy(passwd + 4, "123456");
	computeNum = sub_4D9470(0, passwd + 2, 8);
	sprintf(tmp, "%02X", computeNum);
	passwd[0] = tmp[0];
	passwd[1] = tmp[1];

	for (int i = 0; i < 10; ++i)
	{
		char t = passwd[i];
		for (int j = 0; j < 0x100; ++j)
		{
			if (t == table[j])
			{
				passwd[i] = j;
				break;
			}
		}
	}
}
int main()
{
        initTable();
	char account[100] = "fdas54fdsa";


	char pd[100];
	getPasswd(account, pd);

	printf("password:%s\n", pd);        return 0;
}


免费评分

参与人数 4吾爱币 +9 热心值 +4 收起 理由
Hmily + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
5omggx + 1 + 1 热心回复!
HighBox + 1 我很赞同!
寒枫雨雪 + 1 + 1 谢谢@Thanks!

查看全部评分

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

头像被屏蔽
雨夜故园 发表于 2020-2-12 10:36
提示: 作者被禁止或删除 内容自动屏蔽
HighBox 发表于 2020-1-21 17:04
zhu0797zhu 发表于 2020-1-21 17:33
 楼主| 洋洋不得意 发表于 2020-1-21 17:50
HighBox 发表于 2020-1-21 17:04
某文本指的是???

editplus 4.3
官网 https://www.editplus.com/
 楼主| 洋洋不得意 发表于 2020-1-21 18:13
本帖最后由 洋洋不得意 于 2020-1-21 18:18 编辑

注册出来的密码格式为 XXXX123456
setycyas 发表于 2020-1-22 00:29
这个编辑器还是不错的,注册一个有益
ballhou 发表于 2020-1-22 16:58
请问大神,“未定义标识符 "CharUpperW"”  出现这个问题该怎么办?我看了,Windows.h里面包含了这个呀。
批注 2020-01-22 165546.png
shieep 发表于 2020-1-22 17:42
5.0的才有点意思
bydlyzx 发表于 2020-1-22 23:11
自从 sbulime 出来以后,别的编辑器就迎来了冬天。

从功能到美观都被秒杀了。
evill 发表于 2020-1-22 23:35
bydlyzx 发表于 2020-1-22 23:11
自从 sbulime 出来以后,别的编辑器就迎来了冬天。

从功能到美观都被秒杀了。

我猜你说的应该是sublime
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-16 15:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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