コード例 #1
0
ファイル: cgi.c プロジェクト: ColumPaget/Hashrat
static void CGIDisplayOptions(const char *HashType, const char *Encoding, const char *LineEnding, int OutputLength)
{
char *Token=NULL, *Tempstr=NULL;
const char *ptr;
ListNode *Items=NULL;
int i;

Items=ListCreate();
printf("<tr>\r\n");

Tempstr=HashAvailableTypes(Tempstr);
ptr=GetToken(Tempstr, ",",&Token,0);
while (ptr)
{
ListAddNamedItem(Items, Token, CopyStr(NULL, Token));
ptr=GetToken(ptr, ",",&Token,0);
}

printf("<td align=left>Type: ");
CGIPrintSelect("HashType", HashType, Items);
ListClear(Items, Destroy);
printf("</td>\r\n");

printf("<td align=right>Encoding: ");
for (i=0; EncodingNames[i] !=NULL; i++) SetVar(Items, EncodingNames[i], EncodingDescriptions[i]);
CGIPrintSelect("Encoding", Encoding, Items);
ListClear(Items, Destroy);
printf("</td>\r\n");

printf("<tr>\r\n");
printf("<td align=left>Line Ending: </td>");
printf("<td align=right>");
for (i=0; LineEndingNames[i] !=NULL; i++) SetVar(Items, LineEndingNames[i], LineEndingDescriptions[i]);
CGIPrintSelect("LineEnding", LineEnding, Items);
ListClear(Items, Destroy);
printf("</td>\r\n");
printf("</tr>\r\n");

printf("<tr>\r\n");
printf("<td align=left>Hash Length: </td>");
printf("<td align=right>");
if (OutputLength > 0) printf("<input type=text width=90%% name=\"OutputLength\" style=\"font-weight: bold;  font-size:16px\" value=\"%d\">\r\n",OutputLength);
else printf("<input type=text width=90%% name=\"OutputLength\" style=\"font-weight: bold;  font-size:16px\">\r\n");
printf("</td>\r\n");
printf("</tr>\r\n");

ListDestroy(Items, Destroy);
Destroy(Tempstr);
Destroy(Token);
}
コード例 #2
0
ファイル: VChannel.c プロジェクト: anegrean/DAQLab
/// HIFN Disconnects a Source VChan from all its Sink VChans
static BOOL disconnectSourceVChan (SourceVChan_type* srcVChan)
{
	if (!srcVChan) return FALSE;
	
	SinkVChan_type*		sinkVChan	= NULL;
	
	for (size_t i = 1; i <= ListNumItems(srcVChan->sinkVChans); i++) {
		sinkVChan = *(SinkVChan_type**)ListGetPtrToItem(srcVChan->sinkVChans, i);
		sinkVChan->sourceVChan = NULL;
		// if Sink VChan is open, close it
		if (sinkVChan->baseClass.isOpen) {
			sinkVChan->baseClass.isOpen = VChan_Closed;
			if (sinkVChan->baseClass.VChanStateChangeCBFptr)
				(*sinkVChan->baseClass.VChanStateChangeCBFptr)	((VChan_type*)sinkVChan, sinkVChan->baseClass.VChanOwner, sinkVChan->baseClass.isOpen);
		} 
	}
	
	ListClear(srcVChan->sinkVChans);
	
	// if Source VChan is open, close it
	if (srcVChan->baseClass.isOpen) {
		srcVChan->baseClass.isOpen = VChan_Closed;
		if (srcVChan->baseClass.VChanStateChangeCBFptr)
			(*srcVChan->baseClass.VChanStateChangeCBFptr) ((VChan_type*)srcVChan, srcVChan->baseClass.VChanOwner, srcVChan->baseClass.isOpen);
			
	}
		
	return TRUE;
}
コード例 #3
0
ファイル: http.c プロジェクト: JackieXie168/movgrab
void HTTPReadHeaders(STREAM *S, HTTPInfoStruct *Header)
{
char *Tempstr=NULL;


ListClear(Header->ServerHeaders,DestroyString);
Header->ContentLength=0;
Header->RedirectPath=CopyStr(Header->RedirectPath,"");
Header->Flags &= ~(HTTP_CHUNKED | HTTP_GZIP | HTTP_DEFLATE);
Tempstr=STREAMReadLine(Tempstr,S);
if (Tempstr)
{
HTTPParseResponseLine(S, Header,Tempstr);
Tempstr=STREAMReadLine(Tempstr,S);
}

while (Tempstr)
{
StripTrailingWhitespace(Tempstr);
if (StrLen(Tempstr)==0) break;
HTTPParseHeader(S, Header,Tempstr);
Tempstr=STREAMReadLine(Tempstr,S);
}

S->BytesRead=0;
DestroyString(Tempstr);
}
コード例 #4
0
ファイル: list.c プロジェクト: ColumPaget/Alaya
void ListDestroy(ListNode *ListStart, LIST_ITEM_DESTROY_FUNC ItemDestroyer)
{
  if (! ListStart) return; 
  ListClear(ListStart, ItemDestroyer);
  free(ListStart->Item);
  free(ListStart);
}
コード例 #5
0
ファイル: parse.c プロジェクト: PoCTo/yamsh
Tree* ParseFull(char* c, Err* E){
    Tree* T;
    List* L=ParseBuildList(c,E);
    (E->pres)=0;
    if ((E->pres)==1) {
        ListClear(L);
        return NULL;
    }
    T=ParseBuildTree(L,E);
    ListClear(L);
    if ((E->pres)==1) {
        TreeFree(T);
        return NULL;
    }
    return T;
}
コード例 #6
0
void HTTPReadHeaders(STREAM *S, HTTPInfoStruct *Info)
{
char *Tempstr=NULL, *ptr;


ListClear(Info->ServerHeaders,DestroyString);
Info->ContentLength=0;

//Not needed
//Info->RedirectPath=CopyStr(Info->RedirectPath,"");
Info->Flags &= ~(HTTP_CHUNKED | HTTP_GZIP | HTTP_DEFLATE);
Tempstr=STREAMReadLine(Tempstr,S);
if (Tempstr)
{
	if (Info->Flags & HTTP_DEBUG) fprintf(stderr,"RESPONSE: %s\n",Tempstr);
  if (strncmp(Tempstr,"HTTP/",5)==0)
  {
    ptr=strchr(Tempstr,' ');
    ptr++;

    Info->ResponseCode=CopyStrLen(Info->ResponseCode,ptr,3);
    STREAMSetValue(S,"HTTP:ResponseCode",Info->ResponseCode);
  
  }
Tempstr=STREAMReadLine(Tempstr,S);
}

while (Tempstr)
{
StripTrailingWhitespace(Tempstr);
if (StrLen(Tempstr)==0) break;
HTTPParseHeader(S, Info,Tempstr);
Tempstr=STREAMReadLine(Tempstr,S);
}

//Handle Response Codes
if (StrLen(Info->ResponseCode))
{
		if (*Info->ResponseCode=='3') 
		{
			//No longer a flag, HTTP Redirect is now just a response code
			//Info->Flags |= HTTP_REDIRECT;
		}

		if (strcmp(Info->ResponseCode,"401")==0) 
		{
			if (Info->Authorization) Info->Authorization->Flags |= HTTP_AUTH_BASIC;
		}

		if (strcmp(Info->ResponseCode,"407")==0) 
		{
			if (Info->ProxyAuthorization) Info->ProxyAuthorization->Flags |= HTTP_PROXY_AUTH;
		}

}

S->BytesRead=0;
DestroyString(Tempstr);
}
コード例 #7
0
ファイル: List.c プロジェクト: ColumPaget/Crayonizer
void MapClear(ListNode *Map, LIST_ITEM_DESTROY_FUNC ItemDestroyer)
{
    ListNode *Node;

    if (Map->Flags & LIST_FLAG_MAP_HEAD)
    {
        for (Node=(ListNode *) Map->Item; Node->Flags & LIST_FLAG_MAP_CHAIN; Node++) ListClear(Node, ItemDestroyer);
    }
}
コード例 #8
0
ファイル: tartest.c プロジェクト: ColumPaget/cd-command
main(int argc, char *argv[])
{
    STREAM *S, *Out;
    ListNode *Vars;
    char *Path=NULL, *Tempstr=NULL, *ptr;
    int bytes_read, bytes_total, val, result;


    S=STREAMOpenFile(argv[1],O_RDONLY);

    Out=STREAMFromFD(1);
    Vars=ListCreate();
    while (TarReadHeader(S, Vars))
    {
        Path=CopyStr(Path,GetVar(Vars,"Path"));
        printf("PATH: %s %s %s\n",Path,GetVar(Vars,"Size"),GetVar(Vars,"Type"));
        if (StrLen(Path))
        {
            ptr=GetVar(Vars,"Type");
            if (ptr && (strcmp(ptr,"file")==0))
            {
                bytes_read=0;
                bytes_total=atoi(GetVar(Vars,"Size"));
                Tempstr=SetStrLen(Tempstr,BUFSIZ);
                while (bytes_read < bytes_total)
                {
                    val=bytes_total - bytes_read;
                    if (val > BUFSIZ) val=BUFSIZ;
                    if ((val % 512)==0) result=val;
                    else result=((val / 512) + 1) * 512;
                    result=STREAMReadBytes(S,Tempstr,result);
                    if (result > val) result=val;
                    printf("READ: %d\n",val);
                    fflush(NULL);
                    if (Out) STREAMWriteBytes(Out,Tempstr,result);
                    bytes_read+=result;
                }
            }
        }
        ListClear(Vars,DestroyString);
    }

    ListDestroy(Vars,DestroyString);
    DestroyString(Tempstr);
    DestroyString(Path);
}
コード例 #9
0
ファイル: common.c プロジェクト: ColumPaget/Alaya
void HTTPSessionClear(void *p_Trans)
{
HTTPSession *Trans;

if (! p_Trans) return;
Trans=(HTTPSession *) p_Trans;

//Clear everything but SESSION_REUSE, SESSION_AUTHENTICATED and HTTP_SSL, which are persistent
Trans->Flags &= (SESSION_REUSE | SESSION_AUTHENTICATED | SESSION_UPLOAD | HTTP_SSL);

Trans->Method=CopyStr(Trans->Method,"");
Trans->ResponseCode=CopyStr(Trans->ResponseCode,"");
Trans->URL=CopyStr(Trans->URL,"");
Trans->Path=CopyStr(Trans->Path,"");
Trans->Arguments=CopyStr(Trans->Arguments,"");
Trans->Destination=CopyStr(Trans->Destination,"");
Trans->ContentType=CopyStr(Trans->ContentType,"");
Trans->ContentBoundary=CopyStr(Trans->ContentBoundary,"");
Trans->UserName=CopyStr(Trans->UserName,"");
Trans->Password=CopyStr(Trans->Password,"");
Trans->AuthType=CopyStr(Trans->AuthType,"");
Trans->Host=CopyStr(Trans->Host,"");
Trans->ClientReferrer=CopyStr(Trans->ClientReferrer,"");
Trans->UserAgent=CopyStr(Trans->UserAgent,"");
Trans->SearchPath=CopyStr(Trans->SearchPath,"");

//Do not clear these values, as 'SessionClear' is only called on persistent
//'HTTP Keep-Alive' sessions
//Trans->Protocol=CopyStr(Trans->Protocol,"");
//Trans->Cipher=CopyStr(Trans->Cipher,"");
//Trans->ClientIP=CopyStr(Trans->ClientIP,"");
//Trans->ClientHost=CopyStr(Trans->ClientHost,"");
//Trans->StartDir=CopyStr(Trans->StartDir,"");
//Trans->HomeDir=CopyStr(Trans->HomeDir,"");
//Trans->RealUser=CopyStr(Trans->RealUser,"");
//Trans->UserSettings=CopyStr(Trans->UserSettings,"");
//Trans->ServerName=CopyStr(Trans->ServerName,"");


ListClear(Trans->Headers,DestroyString);
}
コード例 #10
0
ファイル: Main.cpp プロジェクト: Jack2/Lazenca-A-Andoird
/*
 *	SEARCH
 *	FUZZING
 *	- small
 *	- lager
 *	- equal
 *	- notequal
 *	WRITE
 *	PROCESS(Process List)
 *	THREADLIST
 *	ATTACH
 *	CONTROL
 *	- STOP
 *	- START
 *	SHOWLIST(Data List)
 *	CLEAR
 *	EXIT
 */
int main(int argc, const char* argv[]) {

	getUUID();

	char message[BUFSIZE];
	char command1[BUFSIZE] = { '\0', }, command2[BUFSIZE] = { '\0', },command3[BUFSIZE] = { '\0', };

	while (1) {
		printf("Lazenca$ ");
		fgets(message, BUFSIZE, stdin);
		fflush (stdin);

		//입력값이 있는지 없는지 확인
		if (strlen(message) > 1) {
			sscanf(message, "%s%s%s", command1, command2, command3);
			/*printf("command1 : %s, command2 : %s, command3 : %s\n",
			 strupr(command1), command2, command3);*/

			//Process Attach
			if (!strcmp(ATTACH, strupr(command1))) {
				ListClear();
				ProcAttach(command2);
				continue;
				//Process List
			} else if (!strcmp(PROCESSLIST, strupr(command1))) {
				showProcessList();
				continue;
				//Process Exit
			} else if (!strcmp(EXIT, strupr(command1))) {
				exit(0);
			}

			char tempPath[256];
			sprintf(tempPath, "/proc/%d", privatePid);
			if (checkDir(tempPath)) {
				//검색
				if (!strcmp(SEARCH, strupr(command1))) {
					MemorySearch(command2);
					//퍼징
				} else if (!strcmp(FUZZING, strupr(command1))) {
					MemoryFuzzing(command2);
					//값 변경
				} else if (!strcmp(WRITE, strupr(command1))) {
					MemoryWrite(command2, command3);
					//Thread List
				} else if (!strcmp(THREADLIST, strupr(command1))) {
					showThreadList();
					//Process Control
				} else if (!strcmp(CONTROL, strupr(command1))) {
					ThreadControl(command2, command3);
					//Data List
				} else if (!strcmp(DATALIST, strupr(command1))) {
					ShowDataList();
					//Data List Clear
				} else if (!strcmp(CLEAR, strupr(command1))) {
					ListClear();
					//Data Lock
				} else if (!strcmp(DATALOCK, strupr(command1))) {
					DataLock(command2);
				} else if (!strcmp(LOCKLIST, strupr(command1))) {
					ShowLockDataList();
				} else {
					printf("Main Command Input Error!\n");
				}
			} else {
				ListClear();
				printf("%s\n", errorMsgPid);
			}
		}
	}
	return 0;
}
コード例 #11
0
void *AlertSyslogParseArgs(char *Args)
{
    int idx;
    char *ptr;
    ActionSyslogRec *data;
    QueueList *ll, *list;
    QueueList *opt, *options;

    opt = options = ll = list = NULL;
    ptr = NULL;

    DEBUGPATH;
    DBG((printf("%s(%s)\n", __FUNCTION__, Args)));

    data = (ActionSyslogRec *) calloc(sizeof(ActionSyslogRec), 1);
    data->options = 0;
    data->facility = LOG_AUTH;
    data->priority = LOG_INFO;

    list = ListAdd(Args, list, ',');
    for (ll = list; ll != NULL; ll = ll->next) {
	if ((ptr = ParseCmp("facility", ll->item)) != NULL) {
	    for (idx = 0; idx < ARRAYSIZE(hlbr_syslog_facilitys); idx++) {
		if (strcasecmp(hlbr_syslog_facilitys[idx].name, ptr) == 0) {
		    DBG((printf
			 ("facility(%s) = %d\n", ptr,
			  hlbr_syslog_facilitys[idx].val)));
		    data->facility = hlbr_syslog_facilitys[idx].val;
		}
	    }
	    FREE(ptr);
	}
	if ((ptr = ParseCmp("priority", ll->item)) != NULL) {
	    for (idx = 0; idx < ARRAYSIZE(hlbr_syslog_prioritys); idx++) {
		if (strcasecmp(hlbr_syslog_prioritys[idx].name, ptr) == 0) {
		    DBG((printf
			 ("priority(%s) = %d\n", ptr,
			  hlbr_syslog_prioritys[idx].val)));
		    data->priority = hlbr_syslog_prioritys[idx].val;
		}
	    }
	    FREE(ptr);
	}
	if ((ptr = ParseCmp("options", ll->item)) != NULL) {
	    options = ListAdd(ptr, options, '|');
	    for (opt = options; opt != NULL; opt = opt->next) {
		for (idx = 0; idx < ARRAYSIZE(hlbr_syslog_options); idx++) {
		    if (strcasecmp(hlbr_syslog_options[idx].name, opt->item)
			== 0) {
			DBG((printf
			     ("priority(%s) = %d\n", opt->item,
			      hlbr_syslog_options[idx].val)));
			data->options |= hlbr_syslog_options[idx].val;
		    }
		}
	    }
	    ListClear(options);
	    FREE(ptr);
	}
    }
    ListClear(list);
    return data;
}