• 大小: 1.21MB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2023-08-26
  • 语言: 其他
  • 标签: image  jpeg  misc  

资源简介

stegdetect-0.6图像隐写分析工具,主要针对JPEG -q,-t

资源截图

代码片段和文件信息

/*
 * Copyright 2001 Niels Provos 
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms with or without
 * modification are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *      This product includes software developed by Niels Provos.
 * 4. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ‘‘AS IS‘‘ AND ANY EXPRESS OR
 * IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT INDIRECT
 * INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING BUT
 * NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE
 * DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include 

#include “config.h“

#include 

#include “arc4.h“

/* 
 * An arc4 stream generator is used for encryption and pseudo-random
 * numbers.
 */

void
arc4_init(struct arc4_stream *as)
{
int     n;

for (n = 0; n < 256; n++)
as->s[n] = n;
as->i = 0;
as->j = 0;
}

u_int8_t
arc4_getbyte(struct arc4_stream *as)
{
u_int8_t si sj;

as->i = (as->i + 1);
si = as->s[as->i];
as->j = (as->j + si);
sj = as->s[as->j];
as->s[as->i] = sj;
as->s[as->j] = si;
return (as->s[(si + sj) & 0xff]);
}

void
arc4_skipbytes(struct arc4_stream *as int skip)
{
u_int8_t i j si sj;
u_int8_t *s;

s = as->s;
i = as->i;
j = as->j;

while (skip-- > 0) {
i = (i + 1) & 0xff;
si = s[i];
j = (si + j) & 0xff;
s[i] = sj = s[j];
s[j] = si;
}

as->i = i;
as->j = j;
}

u_int32_t
arc4_getword(struct arc4_stream *as)
{
u_int32_t val;
val = arc4_getbyte(as) << 24;
val |= arc4_getbyte(as) << 16;
val |= arc4_getbyte(as) << 8;
val |= arc4_getbyte(as);
return (val);
}

void
arc4_addrandom(struct arc4_stream *as u_char *dat int datlen)
{
        int     n;
        u_int8_t si ki i j *s;

s = as->s;
        i = as->i - 1;
j = as->j;
ki = 0;
        for (n = 0; n < 256; n++) {
                i++;
                si = s[i];
                j = (j + si + dat[ki]);
        

评论

共有 条评论