某文本编辑器逆向
本帖最后由 洋洋不得意 于 2020-1-21 18:17 编辑editplus 4.3
官网 https://www.editplus.com/
逆向算法后得到如下代码
#include <stdio.h>
#include <windows.h>
wchar_t table;
wchar_t word_5F73E0;
void initTable()
{
int i = 0;
for (; i < 0x100; ++i)
{
int v = i;
CharUpperW((wchar_t*)&v);
table = 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;
t ^= word_5F73E0;
}
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);
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 ^= _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;
sprintf(buff, "%02X", computeNum);
char* p = (char*)passwd;
if (p != buff)
{
return false;
}
if (p != buff)
{
return false;
}
computeNum = sub_4D9470(0, &p, passwdLenth - 2);
sprintf(buff, "%02X", computeNum);
if (p != buff)
{
return false;
}
if (p != buff)
{
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;
sprintf(tmp, "%02X", computeNum);
passwd = tmp;
passwd = tmp;
strcpy(passwd + 4, "123456");
computeNum = sub_4D9470(0, passwd + 2, 8);
sprintf(tmp, "%02X", computeNum);
passwd = tmp;
passwd = tmp;
for (int i = 0; i < 10; ++i)
{
char t = passwd;
for (int j = 0; j < 0x100; ++j)
{
if (t == table)
{
passwd = j;
break;
}
}
}
}
int main()
{
initTable();
char account = "fdas54fdsa";
char pd;
getPasswd(account, pd);
printf("password:%s\n", pd); return 0;
}
某文本指的是??? 不错,谢谢分享 HighBox 发表于 2020-1-21 17:04
某文本指的是???
editplus 4.3
官网 https://www.editplus.com/ 本帖最后由 洋洋不得意 于 2020-1-21 18:18 编辑
注册出来的密码格式为 XXXX123456 :lol:lol 这个编辑器还是不错的,注册一个有益 请问大神,“未定义标识符 "CharUpperW"”出现这个问题该怎么办?我看了,Windows.h里面包含了这个呀。 5.0的才有点意思 自从 sbulime 出来以后,别的编辑器就迎来了冬天。
从功能到美观都被秒杀了。 bydlyzx 发表于 2020-1-22 23:11
自从 sbulime 出来以后,别的编辑器就迎来了冬天。
从功能到美观都被秒杀了。
我猜你说的应该是sublime :lol