WEB开发网
开发学院网络安全黑客技术 软件狗[Dongles]的加密与解密技术 阅读

软件狗[Dongles]的加密与解密技术

 2007-01-13 20:14:13 来源:WEB开发网   
核心提示: (2)使用BITSHELL加密商品软件的开发者,不要将BITSHELL系统盘上的任何文件和信息,软件狗[Dongles]的加密与解密技术(8),以任何方式提供给最终用户,不要将自己所用的BITSHELL的版本,获取PSP段地址方法:MOV AH,62HINT 21HBX就是该程序的PSP段

(2)使用BITSHELL加密商品软件的开发者,不要将BITSHELL系统盘上的任何文件和信息,以任何方式提供给最终用户。不要将自己所用的BITSHELL的版本,序列号和变形算法透漏出去。

五、系统提供的可链接函数

函数BL-ComeIn(BLOBJ.OBJ).........................[1]

C语言说明:

extern unsigned long BL_ComeIn(void);

说明:

利用这个函数可判断是否运行过反跟踪程序,同时还返回程序的PSP段地址和机器的ROM检查和,供用户程序进一步检查。这是一个与加密外壳相关的函数,这样可使用户程序与加密软件融为一体。对PSP段地址和ROM检查和的判断不要隔的太近。

入口参数:无

出口参数:如果出错,返回 0FFFFFFFFH ;

(DX:AX=0FFFFFFFFH)

如果成功,返回一个无符号的长字。

其中:

低字节是ROM检查和,高字是PSP段地址。

(AL=ROM检查和,DX=PSP段地址)

注意:ROM检查和计算方法:

累加ROM(0xF000:0xE000)处开始字节,长度为0x100。

获取PSP段地址方法:

MOV AH,62H

INT 21H

BX就是该程序的PSP段地址。

调用建议:

不要每次运行都去检查该函数,用适当频率、在关键的地方调用这个函数。

C Usage Example:
/*
* function:BL_ComeIn
*/
extern unsigend long far BL_ComeIn(void);
/* Error return 0xFFFFFFFF,Success Return
* Lo Byte is checksum,Hi Word is PSP segment
*/
void My_BL_ComeIn()
{
unsigned long ComeIn;
unsigned short int ROM_CheckSum;
unsigned int PSPsegment;
ComeIn=BL_ComeIn();
if (ComeIn==0xffffffff)
{
printf(" ERROR:not loaded from BITSHELL shell ! ");
{
else
{
ROM_CheckSum=ComeIn&0xff;
PSPsegment =ComeIn>>16;
printf("nBITSHELL On Entry:N");
printf("ROM checksum is %x h",ROM_CheckSum);
printf("PSP segment is %xh ",PSPsegment);
inregs.h.ah=0x62;
intdos(&inregs,$outregs);
printf("n This program PSP segment is %xh ",outregs.x.bx);
{
{

五、一个简单的例子

上一页  3 4 5 6 7 8 9 10  下一页

Tags:软件 Dongles 加密

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接