随笔分类 - 算法
摘要:本文宗旨在于提出一种给软件添加注册码的方法。至于所提出的方法是否有效,是否能够经得起一些逆向高手的破解,还得经过验证。我只是提出我个人的看法。一、目标。 目标很明确,就是根据需要注册软件的个人信息,产生注册码。并且软件本身必须可以校验该注册码是否有效。并且能够防止别人逆向算出校验算法,产生注册机;能够防止别人用暴力破解方法,直接修改软件执行代码,绕过注册。 二、方法论述 要做到以上的目标,有两个方面特别重要。一是,注册码产生算法的选择;二是,要使软件具有自身校验机制,防止可执行程序别篡改。下面我们分别论述这两点。1. 注册码产生算法的选择 现在很多软件都存在注册机,很大原因是因为软件本身的注册
阅读全文
摘要:RSA算法描述:1) 选择两个大素数 p、q, 计算 n = p*q;2) 产生 e, d 使: e*d = 1mod(p-1)(q-1) e 与 (p-1)(q-1) 互质[公钥] e、n[私钥] d、n3) 加密: c = m^d mod n4) 解密: m = c^e mod n--------------------------------------------------------------------------------------libtommath是一个大数算法库。以下的代码是用这个库中的函数实现的,相当简单。#include <tommath.h>typ
阅读全文
摘要:1. PE文件的资源是以树形结构存储的。2. 资源目录: typedef struct { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; WORD NumberOfNamedEntries; WORD NumberOfIdEntries; }IMAGE_RESOURCE_DIRECTORY; IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; DirectoryEntries紧跟在IMAGE_RESOURCE_D
阅读全文
摘要:G(2^8)有限域上的运算-----------------------------------------------------本原多项式P(x) = x8+x4+x3+x2+1 [1 0001 1101]定义 P(x) = 0 则 x8 = x4+x3+x2+1 [0 0001 1101]-----------------------------------------------------区间[0,255]可以表示成各种多项式。例如: 0 = 00000000 = 0 1 = 00000001 = x0 = 1 2 = 00000010 = x2 129 = 10000001 = x
阅读全文