403Webshell
Server IP : 103.119.228.120  /  Your IP : 3.143.5.161
Web Server : Apache
System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User : nobody ( 99)
PHP Version : 5.6.40
Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime
MySQL : ON |  cURL : ON |  WGET : ON |  Perl : ON |  Python : ON |  Sudo : ON |  Pkexec : ON
Directory :  /usr/local/share/perl5/Net/OSCAR/XML/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /usr/local/share/perl5/Net/OSCAR/XML/Protocol.xml
<?xml version="1.0"?>
<!DOCTYPE oscar SYSTEM "Protocol.dtd">

<oscar>

	<!-- OSCAR primitives -->

	<define name="flap">
		<byte>42</byte> <!-- FLAP packet start indicator -->
		<byte name="channel">2</byte>
		<word name="seqno" />
		<data length_prefix="word" name="msg" />
	</define>

	<define name="snac">
		<word name="family" />
		<word name="subtype" />
		<byte name="flags1" />
		<byte name="flags2" />
		<dword name="reqid" />
		<data name="data" />
	</define>

	<define name="TLV">
		<word name="type" />
		<data length_prefix="word" name="data" />
	</define>
	<define name="subtyped_TLV">
		<word name="type" />
		<byte name="subtype" />
		<data length_prefix="byte" name="data" />
	</define>


	<define name="userinfo">
		<data name="screenname" length_prefix="byte" />
		<word name="evil" />
		<tlvchain count_prefix="word">
			<tlv type="1"><word name="flags" /></tlv>
			<tlv type="2"><dword name="membersince" /></tlv>
			<tlv type="3"><dword name="onsince" /></tlv>
			<tlv type="4"><word name="idle" /></tlv>
			<tlv type="13"><data length="16" count="-1" name="capabilities" /></tlv>
			<tlv type="25"><data length="2" count="-1" name="shortcaps" /></tlv>
			<tlv type="29">
				<tlvchain subtyped="yes">
					<tlv type="1" subtype="1"><data name="icon_md5sum" /></tlv>
					<tlv type="2" subtype="-1"><data length_prefix="word" name="extended_status" /></tlv>
				</tlvchain>
			</tlv>
		
			<tlv type="5"> <!-- Only found in channel 3 IMs, why is it in this structure??? -->
				<tlvchain>
					<tlv type="12"><data name="invitation_message" /></tlv>
					<tlv type="10001">
						<word />
						<data length_prefix="byte" name="chat_url" />
					</tlv>
				</tlvchain>
			</tlv> 


			<!-- Self-info only -->
			<tlv type="15"><dword name="session_length" /></tlv>
			<tlv type="10"><dword name="ip" /></tlv>

			<!-- This contains a second copy of this structure - why?! -->
			<tlv type="512" name="sub_info" />
		</tlvchain>
	</define>


	<!-- Random protocol crap -->

	<define name="service_request" family="1" subtype="4">
		<word name="type" />

		<!-- Chat extra -->
		<tlvchain>
			<tlv type="1" name="chat">
				<word name="exchange" />
				<data length_prefix="byte" name="url" />
				<word>0</word>
			</tlv>
		</tlvchain>
	</define>
	<define name="error" family="-1" subtype="1">
		<word name="errno" />
		<tlvchain>
			<tlv type="4"><data name="error_details" /></tlv>
		</tlvchain>
	</define>
	<define name="service_redirect_response" family="1" subtype="5">
		<tlvchain>
			<tlv type="13"><word name="service_type" /></tlv>
			<tlv type="6"><data name="auth_cookie" /></tlv>
			<tlv type="5"><data name="server_ip" /></tlv>
		</tlvchain>
	</define>


	<!-- Signing on -->

	<define name="BOS_signon" family="0" subtype="1" channel="1" flags2="6">
		<data name="cookie" />
	</define>

	<define name="signon" family="23" subtype="2">
		<tlvchain>
			<tlv type="1"><data name="screenname" /></tlv>

			<!-- For AIM-style signons -->
			<tlv type="37"><data name="auth_response" /></tlv>
			<!--
			   Set this if the password was hashed before putting
			   it into the auth_response
			-->
			<tlv type="76"><data name="pass_is_hashed" /></tlv>

			<!-- For ICQ-style signons -->
			<tlv type="2"><data name="password" /></tlv>

			<tlv type="3"><data name="clistr" /></tlv>
			<tlv type="22"><word name="supermajor" /></tlv>
			<tlv type="23"><word name="major" /></tlv>
			<tlv type="24"><word name="minor" /></tlv>
			<tlv type="25"><word name="subminor" /></tlv>
			<tlv type="26"><word name="build" /></tlv>
			<tlv type="20"><dword name="subbuild" /></tlv>
			<tlv type="15"><data>en</data></tlv>
			<tlv type="14"><data>us</data></tlv>
			<tlv type="74"><byte>1</byte></tlv>
		</tlvchain>
	</define>
	<define name="ICQ_signon_request" channel="1">
		<dword>1</dword>
		<ref name="signon" />
	</define>

	<define name="initial_signon_request" family="23" subtype="6">
		<tlvchain>
			<tlv type="1"><data name="screenname" /></tlv>
			<tlv type="75" default_generate="yes" />
			<tlv type="90" default_generate="yes" />
		</tlvchain>
	</define>

	<!-- How server sends challenge for challenge/response authentication to client -->
	<define name="authentication_key" family="23" subtype="7">
		<data name="key" length_prefix="word" />
	</define>

	<!-- Random crap that's part of signon, protocol negotiation -->
	<define name="authorization_response" family="23" subtype="3">
		<tlvchain>
			<!-- If there's an error -->
			<tlv type="8"><word name="error" /></tlv>
			<tlv type="4"><data name="error_details" /></tlv>

			<!-- Basic info -->
			<tlv type="1"><data name="screenname" /></tlv>
			<tlv type="17"><data name="email" /></tlv>
			<tlv type="6"><data name="auth_cookie" /></tlv>
			<tlv type="5"><data name="server_ip" /></tlv>

			<!-- Other stuff -->
			<tlv type="19"><word name="registration_status" /></tlv>
			<tlv type="84"><data name="password_change_url" /></tlv>
		</tlvchain>
	</define>
	<define name="rate_class_info">
		<word name="class_id" />
		<dword name="window_size" />
		<data name="levels">
			<dword name="clear" />
			<dword name="alert" />
			<dword name="limit" />
			<dword name="disconnect" />
			<dword name="current" />
			<dword name="max" />
		</data>
		<dword name="last_time" />
		<byte name="current_state" />
	</define>
	<define name="rate_info_response" family="1" subtype="7">
		<data count_prefix="word" name="classes">
			<ref name="rate_class_info" />
		</data>
		<data count="-1" name="classmembers">
			<word name="class_id" />
			<data count_prefix="word" name="snacs">
				<word name="family" />
				<word name="subtype" />
			</data>
		</data>
	</define>
	<define name="rate_acknowledgement" family="1" subtype="8">
		<word count="-1" name="classes" />
	</define>
	<define name="personal_info_request" family="1" subtype="14" />
	<define name="buddylist_rights_request" family="19" subtype="2" />
	<define name="buddylist_request" family="19" subtype="4" />

	<define name="locate_rights_request" family="2" subtype="2" />
	<define name="locate_rights_response" family="2" subtype="3">
		<tlvchain>
			<tlv type="1"><word name="max_profile_len">1024</word></tlv>
			<tlv type="2"><word name="max_capabilities">16</word></tlv>
			<tlv type="3"><word>10</word></tlv>
			<tlv type="4"><word>4096</word></tlv>
		</tlvchain>
	</define>

	<define name="buddy_rights_request" family="3" subtype="2" />
	<define name="buddy_rights_response" family="3" subtype="3">
		<tlvchain>
			<tlv type="1"><word name="maxbuddies">600</word></tlv>
			<tlv type="2"><word name="maxwatchers">750</word></tlv>
			<tlv type="3"><word name="maxnotifies">512</word></tlv>
		</tlvchain>
	</define>

	<define name="IM_parameters">
		<word name="channel">0</word>
		<dword name="flags">3</dword>
		<word name="max_size">8000</word>
		<word name="max_send_warn">999</word>
		<word name="max_recv_warn">999</word>
		<word name="min_msg_interval">0</word>
		<word>0</word>
	</define>
	<define name="add_IM_parameters" family="4" subtype="2"><ref name="IM_parameters" /></define>
	<define name="IM_parameter_request" family="4" subtype="4"><ref name="IM_parameters" /></define>
	<define name="IM_parameter_response" family="4" subtype="5"><ref name="IM_parameters" /></define>

	<define name="BOS_rights_request" family="9" subtype="2" />
	<define name="BOS_rights_response" family="9" subtype="3">
		<tlvchain>
			<tlv type="1"><word name="max_permits">200</word></tlv>
			<tlv type="2"><word name="max_denies">200</word></tlv>
		</tlvchain>
	</define>

	<define name="self_information" family="1" subtype="15"><ref name="userinfo" /></define>
	<define name="minimum_report_interval" family="11" subtype="2" />
	<define name="MOTD" family="1" subtype="19" />
	<define name="server_ready" family="1" subtype="3">
		<word count="-1" name="families" />
	</define>
	<define name="set_service_versions" family="1" subtype="23">
		<data count="-1" name="service">
			<word name="service_id" />
			<word name="service_version" />
		</data>
	</define>
	<define name="set_tool_versions" family="1" subtype="2">
		<data count="-1" name="service">
			<word name="service_id" />
			<word name="service_version" />
			<word name="tool_id" />
			<word name="tool_version" />
		</data>
	</define>
	<define name="rate_info_request" family="1" subtype="6" />
	<define name="rate_change" family="1" subtype="10">
		<enum type="word" name="message_type">
			<edef name="change" value="1" />
			<edef name="warning" value="2" />
			<edef name="alert" value="3" />
			<edef name="clear" value="4" />
		</enum>
		<ref name="rate_class_info" />
	</define>
	<define name="outgoing_warning" family="4" subtype="8">
		<word name="is_anonymous" />
		<data name="screenname" length_prefix="byte" />
	</define>
	<define name="incoming_warning" family="1" subtype="16">
		<word name="new_level" />
		<ref name="userinfo" />
	</define>
	<define name="memory_request" family="1" subtype="31" /> <!-- This was an attempt to block third-party clients by requesting MD5s of portions of the AIM.EXE binary; it is no longer used, huzzah -->
	<define name="host_versions" family="1" subtype="24">
		<data count="-1" name="server">
			<word name="service_id" />
			<word name="service_version" />
		</data>
	</define>
	<define name="buddylist_done" family="19" subtype="7" />



	<!-- Buddylist stuff -->

	<define name="buddylist_3_response" family="19" subtype="3">
		<tlvchain>
			<tlv type="4"><word count="-1" name="maximums" /></tlv>
			<tlv type="2"><word>254</word></tlv>
			<tlv type="3"><word>508</word></tlv>
			<tlv type="5"><word>0</word></tlv>
			<tlv type="6"><word>97</word></tlv>
			<tlv type="7"><word>10</word></tlv>
		</tlvchain>
	</define>
	<define name="buddylist" family="19" subtype="6"> <!-- This is supremely weird and fucked up, no bloody way we'll be able to get it in the XML; notably, it is split across multiple SNACs, but not on any sort of coherent boundary, and you have to slice random bits off the front and back...  See OSCAR/Callbacks.pm handler for this protobit. -->
		<data name="data" />		
	</define>
	<define name="buddylist_modification_acknowledgement" family="19" subtype="14">
		<word name="error" count="-1" />
	</define>
	<define name="buddylist_error" family="19" subtype="15">
		<data name="data" />
	</define>

	<!-- Packets are limited to 8k in size, which we could exceed if we try to put too many
		modifications into one packet.  Since we need to flatten one modification at a time
		and stop when we hit the size cap, this stuff is a bit peculiar. -->
	<define name="buddylist_modification">
		<data name="entry_name" length_prefix="word" />
		<word name="group_id" />
		<word name="buddy_id" />
		<word name="entry_type" />
		<data name="entry_data" length_prefix="word" />
	</define>
	<define name="buddylist_add" family="19" subtype="8"><data name="mods" /></define>
	<define name="buddylist_modify" family="19" subtype="9"><data name="mods" /></define>
	<define name="buddylist_delete" family="19" subtype="10"><data name="mods" /></define>

	<!-- We also provide this more regular version for use in parsing changes sent by the server -->
	<define name="buddylist_change">
		<data name="changes" count="-1">
			<ref name="buddylist_modification" />
		</data>
	</define>

	<define name="start_buddylist_modifications" family="19" subtype="17" />
	<define name="end_buddylist_modifications" family="19" subtype="18" />
	


	<!-- User information -->

	<define name="get_info" family="2" subtype="21">
		<word>0</word>
		<word>1</word>
		<data length_prefix="byte" name="screenname" />
	</define>
	<define name="get_away" family="2" subtype="21">
		<word>0</word>
		<word>3</word>
		<data length_prefix="byte" name="screenname" />
	</define>
	<define name="incoming_profile" family="2" subtype="6">
		<ref name="userinfo" />
		<tlvchain>
			<tlv type="2"><data name="profile" /></tlv>
			<tlv type="4"><data name="awaymsg" /></tlv>
		</tlvchain>
	</define>

	<define name="set_info" family="2" subtype="4">
		<tlvchain>
			<tlv type="1"><data name="profile_mimetype" /></tlv>
			<tlv type="2"><data name="profile" /></tlv>

			<tlv type="3"><data name="awaymsg_mimetype" /></tlv>
			<tlv type="4"><data name="awaymsg" /></tlv>

			<tlv type="5"><data name="capabilities" length="16" count="-1" /></tlv>
			<tlv type="6">
				<tlvchain><tlv type="4"><word>2</word></tlv></tlvchain>
			</tlv>
		</tlvchain>
	</define>

	<define name="set_idle" family="1" subtype="17">
		<dword name="duration" />
	</define>

	<!-- Extended information -->

	<define name="typing_notification" family="4" subtype="20">
		<dword>0</dword>
		<dword>0</dword>
		<word>1</word>
		<data length_prefix="byte" name="screenname" />
		<word name="typing_status" />
	</define>

	<define name="incoming_extended_information" family="1" subtype="33">
		<!-- Gee, thank you for this wonderful structure, AOL...  Love you too. -->
		<!-- Only one item in the TLV chain will be present, client should key off of which one -->
		<tlvchain subtyped="yes">
			<tlv type="0" subtype="65"><data name="upload_checksum" /></tlv>
			<tlv type="1" subtype="65"><data name="upload_checksum" /></tlv>

			<tlv type="0" subtype="129"><data name="resend_checksum" /></tlv>
			<tlv type="1" subtype="129"><data name="resend_checksum" /></tlv>

			<tlv type="2" subtype="-1"><data length_prefix="word" name="status_message" /></tlv>
		</tlvchain>
	</define>

	<define name="set_extended_status" family="1" subtype="30">
		<tlvchain>
			<tlv type="29" name="status_message">
				<word>2</word>
				<byte>4</byte>
				<data length_prefix="byte">
					<data length_prefix="word" name="message" />
					<word>0</word>
				</data>
			</tlv>
			<tlv type="6" name="stealth">
				<!--
				   0x100 is the 'stealth' flag
				   Presumably there are other things that can go here...
				-->
				<dword name="state" />
			</tlv>
		</tlvchain>
	</define>

	<define name="icon_upload" family="16" subtype="2">
		<tlvchain>
			<tlv type="1"><data name="icon" /></tlv>
		</tlvchain>
	</define>



	<!-- Buddylist -->

	<define name="buddy_status_update" family="3" subtype="11">
		<ref name="userinfo" />
	</define>
	<define name="buddy_signoff" family="3" subtype="12">
		<data length_prefix="byte" name="screenname" />
	</define>


	<!-- IMs -->

	<define name="standard_IM_header">
		<data length="8" name="cookie" />
		<word name="channel">1</word>
	</define>
	<define name="standard_IM_footer">
		<tlvchain>
			<tlv type="2">
				<tlvchain>
					<tlv type="1281">
						<word>257</word>
						<word>257</word>
					</tlv>
					<tlv type="257">
						<word>0</word>
						<word>0</word>
						<data name="message" />
					</tlv>
				</tlvchain>
			</tlv>
			<tlv type="4" name="is_automatic" />
			<tlv type="3" name="request_server_confirmation" />
			<tlv type="11" name="supports_typing_status" />
			<tlv type="8" name="icon_data">
				<dword name="icon_length" />
				<word>1</word>
				<word name="icon_checksum" />
				<dword name="icon_timestamp" />
			</tlv>
		</tlvchain>
	</define>
	<define name="rendezvous_IM">
		<tlvchain>
			<tlv type="5">
				<enum type="word" name="status"> 
					<edef name="propose" value="0" />
					<edef name="cancel" value="1" />
					<edef name="accept" value="2" />
				</enum>

				<data length="8" name="cookie" />

				<!-- Indicates request type -->
				<data length="16" name="capability" />

				<tlvchain>
					<!-- 1 == push, 2 == pull -->
					<tlv type="10"><word name="push_pull" /></tlv>
					<tlv type="11"><word name="error" /></tlv>
					<tlv type="15" default_generate="yes" />

					<!-- File transfer stuff -->
					<tlv type="2"><dword name="client_1_ip" /></tlv>
					<tlv type="3"><dword name="client_2_ip" /></tlv>
					<tlv type="4"><dword name="client_external_ip" /></tlv>
					<tlv type="5"><word name="port" /></tlv>
					<tlv type="22"><dword name="proxy_ip" /></tlv>


					<!-- Proposal message -->
					<tlv type="12"><data name="invitation_msg" /></tlv>
					<tlv type="13"><data name="charset">us-ascii</data></tlv>
					<tlv type="14"><byte name="language">48</byte></tlv>

					<!-- See 'rendezvous service-specific data' -->
					<tlv type="10001"><data name="svcdata" /></tlv>
					<tlv type="10002"><data name="svcdata_charset" /></tlv>
				</tlvchain>
			</tlv>
		</tlvchain>
	</define>

	<define name="incoming_IM" family="4" subtype="7">
		<ref name="standard_IM_header" />
		<ref name="userinfo" />
		<data name="message_body" />
	</define>
	<define name="outgoing_IM" family="4" subtype="6">
		<ref name="standard_IM_header" />
		<data name="screenname" length_prefix="byte" />
		<data name="message_body" />
	</define>

	<define name="IM_acknowledgement" family="4" subtype="12">
		<data length="8" name="cookie" />
		<word name="channel" />
		<data length_prefix="byte" name="screenname" />
	</define>



	<!-- Chat -->

	<define name="chat_invitation_accept" family="13" subtype="4">
		<word name="exchange">4</word>
		<data length_prefix="byte" name="url" />
		<word>0</word>
		<byte>2</byte>
	</define>
	<define name="chat_invitation_decline" family="4" subtype="11">
		<data length="8" name="cookie" />
		<word name="channel">2</word>
		<data length_prefix="byte" name="screenname" />
		<tlvchain>
			<!-- 0=not supported, 1=declined, 2=client is not accepting transfers -->
			<tlv type="3"><word name="code">1</word></tlv>
		</tlvchain>
	</define>

	<define name="chat_navigator_rights_request" family="13" subtype="2" />
	<define name="chat_navigator_room_create" family="13" subtype="8">
		<ref name="chat_room_info" />
	</define>

	<define name="chat_data">
		<tlvchain count_prefix="word">
			<tlv type="106"><data name="name" /></tlv>
			<tlv type="111"><word name="occupant_count" /></tlv>
			<tlv type="115" name="occupants" count="-1">
				<ref name="userinfo" />
			</tlv>

			<tlv type="209"><word name="max_msg_len" /></tlv>
			<tlv type="211"><data name="name" /></tlv>
			<tlv type="214"><data name="charset">us-ascii</data></tlv>
			<tlv type="215" default_generate="yes"><data name="language">en</data></tlv>
			<tlv type="219"><data name="encoding" /></tlv>
		</tlvchain>
	</define>
	<define name="chat_room_info">
		<word name="exchange" />
		<data length_prefix="byte" name="url">create</data>
		<word name="instance">65535</word>
		<byte name="detail_level">1</byte>
		<ref name="chat_data" />
	</define>
		<word />
		<data length_prefix="byte">
			<byte />
			<data name="name" />
		</data>
		<word />
		<byte name="detail_level" />
		<tlvchain count_prefix="word">
			<tlv type="111"><word name="occupant_count" /></tlv>
			<tlv type="115">
				<data name="occupants" count="-1">
					<ref name="userinfo" />
				</data>
			</tlv>
		</tlvchain>


	<define name="chat_navigator_response" family="13" subtype="9">
		<tlvchain>
			<!-- These two come from the 'chat navigator rights request' -->
			<tlv type="2"><byte name="max_concurrent_rooms" /></tlv>
			<tlv type="3" count="-1" name="exchange">
				<word name="exchange" />
				<ref name="chat_data" />
			</tlv>

			<!-- These two come from the create room request -->
			<tlv type="4" count="-1" name="room">
				<ref name="chat_room_info" />
			</tlv>
		</tlvchain>
	</define>


	<define name="chat_room_status" family="14" subtype="2">
		<ref name="chat_room_info" />
	</define>
	<define name="chat_buddy_arrival" family="14" subtype="3">
		<data name="arrivals" count="-1">
			<ref name="userinfo" />
		</data>
	</define>
	<define name="chat_buddy_departure" family="14" subtype="4">
		<data name="departures" count="-1" length_prefix="byte" />
	</define>


	<define name="chat_IM">
		<data length="8" name="cookie" />
		<word>3</word> <!-- channel -->
		<tlvchain>
			<tlv type="1" default_generate="yes" />
			<tlv type="3"><data name="sender" length_prefix="byte" /></tlv>
			<tlv type="6" name="reflect" />
			<tlv type="7" name="is_automatic" />
			<tlv type="5">
				<tlvchain>
					<tlv type="4"><data name="type">text/x-aolrtf</data></tlv>
					<tlv type="2"><data name="charset">us-ascii</data></tlv>
					<tlv type="3"><data name="language">en</data></tlv>
					<tlv type="5"><data>binary</data></tlv>
					<tlv type="1"><data name="message" /></tlv>
				</tlvchain>
			</tlv>
		</tlvchain>
	</define>
	<define name="outgoing_chat_IM" family="14" subtype="5"><ref name="chat_IM" /></define>
	<define name="incoming_chat_IM" family="14" subtype="6"><ref name="chat_IM" /></define>



	<!-- Administrative services -->

	<define name="admin_request_response" family="7" subtype="5">
		<word name="request_type" />
		<tlvchain count_prefix="word">
			<tlv type="1"><data name="new_screenname" /></tlv>
			<tlv type="17"><data name="new_email" /></tlv>
			<tlv type="8"><word name="error_code" /></tlv>
			<tlv type="4"><data name="error_url" /></tlv>
			<tlv type="3"><word name="subrequest" /></tlv>
		</tlvchain>
	</define>
	<define name="buddy_icon_uploaded" family="16" subtype="3" />
	<define name="buddy_icon_download" family="16" subtype="4">
		<data name="screenname" length_prefix="byte" />
		<byte>1</byte>
		<word>1</word>
		<byte>1</byte>
		<data name="md5sum" length_prefix="byte" />
	</define>
	<define name="buddy_icon_downloaded" family="16" subtype="5">
		<data name="screenname" length_prefix="byte" />
		<word name="flags" />
		<byte name="number" />
		<data name="checksum" length_prefix="byte" />
		<data name="icon" length_prefix="word" />
	</define>

	<define name="confirm_account_request" family="7" subtype="6" />
	<define name="confirm_account_response" family="7" subtype="7">
		<!-- If present and 19, indicates error, otherwise success -->
		<word name="status" />
	</define>

	<define name="change_account_info" family="7" subtype="4">
		<!-- Not all of these need to be present. -->
		<tlvchain>
			<tlv type="1"><data name="new_screenname" /></tlv>

			<tlv type="17"><data name="new_email" /></tlv>

			<tlv type="2"><data name="newpass" /></tlv>
			<tlv type="18"><data name="oldpass" /></tlv>
		</tlvchain>
	</define>


	<!-- ICQ -->

	<define name="ICQ_meta">
		<tlvchain>
			<tlv type="1">
				<data length_prefix="word" prefix_order="vax" >
					<dword name="our_uin" order="vax" />
					<word name="type" order="vax" />
					<word name="seqno" order="vax" />
					<data name="typedata" />
				</data>
			</tlv>
		</tlvchain>
	</define>
	<define name="ICQ_meta_request" family="21" subtype="2"><ref name="ICQ_meta" /></define>
	<define name="ICQ_meta_response" family="21" subtype="3"><ref name="ICQ_meta" /></define>

	<!-- Type 2000 -->
	<define name="ICQ_meta_info_request">
		<word name="subtype" order="vax">1202</word>
		<dword name="uin" order="vax" />
	</define>


	<!-- Type 2010 -->
	<define name="ICQ_meta_info_response">
		<word name="subtype" order="vax" />

		<!-- 10 == success -->
		<byte name="status" />

		<data name="response_data" />
	</define>

	<!-- Type 2010 subtypes -->

	<!-- 200 -->
	<define name="ICQ_meta_info_response:_basic">
		<data name="nickname" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="firstname" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="lastname" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="email" length_prefix="word" prefix_order="vax" null_terminated="yes" />

		<data name="home">
			<data name="city" length_prefix="word" prefix_order="vax" null_terminated="yes" />
			<data name="state" length_prefix="word" prefix_order="vax" null_terminated="yes" />
			<data name="phone_num" length_prefix="word" prefix_order="vax" null_terminated="yes" />
			<data name="fax_num" length_prefix="word" prefix_order="vax" null_terminated="yes" />
			<data name="address" length_prefix="word" prefix_order="vax" null_terminated="yes" />
			<data name="cell_phone_num" length_prefix="word" prefix_order="vax" null_terminated="yes" />
			<data name="zip_code" length_prefix="word" prefix_order="vax" null_terminated="yes" />
			<word name="country_code" order="vax" />
		</data>

		<byte name="gmt_offset" />
		<byte name="authorization" />
		<byte name="web_aware" />
		<byte name="direct_connect_permissions" />
		<byte name="publish_primary_email" />
	</define>
	<!-- 210 -->
	<define name="ICQ_meta_info_response:_office">
		<data name="city" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="state" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="phone_num" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="fax_num" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="address" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="zip_code" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<word name="country_code" order="vax" />

		<data name="company" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="department" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="position" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<word name="occupation" order="vax" />
		<data name="office_website" length_prefix="word" prefix_order="vax" null_terminated="yes" />
	</define>
	<!-- 220 -->
	<define name="ICQ_meta_info_response:_background">
		<word name="age" order="vax" />
		<byte name="gender" />
		<data name="homepage" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<word name="birth_year" order="vax" />
		<byte name="birth_month" />
		<byte name="bith_day" />
		<byte name="language_1" />
		<byte name="language_2" />
		<byte name="language_3" />
		<word />
		<data name="origin_city" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<data name="origin_state" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<word name="origin_country" order="vax" />
		<byte name="marital_status" />
	</define>
	<!-- 230 -->
	<define name="ICQ_meta_info_response:_notes">
		<data name="notes" length_prefix="word" prefix_order="vax" null_terminated="yes" />
	</define>
	<!-- 235 -->
	<define name="ICQ_meta_info_response:_email">
		<data count_prefix="byte" name="addresses">
			<byte name="publish" />
			<data name="address" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		</data>
	</define>
	<!-- 240 -->
	<define name="ICQ_meta_info_response:_interests">
		<data count_prefix="byte" name="interests">
			<word name="category" order="vax" />
			<data name="interest" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		</data>
	</define>
	<!-- 250 -->
	<define name="ICQ_meta_info_response:_affiliations">
		<data count_prefix="byte" name="past_affiliations">
			<word name="category" order="vax" />
			<data name="keyword" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		</data>
		<data count_prefix="byte" name="affiliations">
			<word name="category" order="vax" />
			<data name="keyword" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		</data>
	</define>
	<!-- 270 -->
	<define name="ICQ_meta_info_response:_homepage">
		<byte name="enabled" />
		<word name="category" order="vax" />
		<data name="keywords" length_prefix="word" prefix_order="vax" null_terminated="yes" />
		<byte />
	</define>


	<!-- Rendezvous service-specific data -->
	<define name="chat_invite_rendezvous_data">
		<word name="exchange">4</word>
		<data length_prefix="byte" name="url" />
		<word>0</word>
	</define>
	<define name="file_transfer_rendezvous_data">
		<!-- 1 if only sending a single file, otherwise 2 -->
		<word name="file_count_status" />
		<word name="file_count" />
		<dword name="size" />
		<data count="-1" null_terminated="yes" name="files" />
	</define>
	<define name="buddy_list_transfer_rendezvous_data">
		<data count="-1" name="group">
			<data length_prefix="word" name="name" />
			<data count_prefix="word" name="buddies">
				<data length_prefix="word" name="name" />
			</data>
		</data>
	</define>


	<!-- Direct-connect and file transfer stuff -->
	<define name="file_transfer_header">
		<data length="4">OFT2</data>
		<word name="header_length">256</word>

		<!-- 0x0101 for syn, 0x0202 for ack, 0x0204 for fin -->
		<word name="type" />

		<data length="8" name="cookie" />

		<word name="encrypt">0</word>
		<word name="compress">0</word>
		<word name="file_count" />
		<word name="files_left" />
		<word name="part_count">1</word>
		<word name="parts_left">1</word>
		<dword name="byte_count" />
		<dword name="bytes_left" />
		<dword name="mtime" />
		<dword name="checksum" />
		<dword name="received_initial_checksum">4294901760</dword>
		<dword name="received_size">0</dword>
		<dword name="ctime" />
		<dword name="initial_checksum">4294901760</dword>
		<dword name="bytes_received" />
		<dword name="received_checksum" />
		<data length="32" pad="0" name="client_id">Cool FileXfer</data>
		<byte name="flags">32</byte>
		<byte name="name_offset">28</byte>
		<byte name="size_offset">17</byte>
		<data length="69" pad="0" />
		<data length="16" pad="0" name="mac_file_info" />
		<word name="encoding">0</word>
		<word name="language">0</word>
		<data length="64" pad="0" name="filename" />
	</define>


	<!-- Migration: See http://iserverd1.khstu.ru/oscar/sequences.html#migration -->
	<define name="pause" family="1" subtype="11" />
	<define name="pause_ack" family="1" subtype="12">
		<word count="-1" name="families" />
	</define>
	<define name="unpause" family="1" subtype="13" />
	<define name="migrate" family="1" subtype="18">
		<word count_prefix="word" name="families" />
		<tlvchain>
			<tlv type="5"><data name="peer" /></tlv>
			<tlv type="6"><data name="cookie" /></tlv>
		</tlvchain>
	</define>


	<!-- Direct connect proxy -->
	<!-- In front of any of these is a 16-bit network order length -->
	<define name="direct_connect_proxy_hdr">
		<word name="magic">1098</word>
		<word name="msg_type" />
		<dword>0</dword>
		<data name="data" />
	</define>
	<define name="direct_connect_proxy_init"> <!-- msg_type 2 -->
		<ref name="direct_connect_proxy_hdr" />
		<word>0</word>
		<data length_prefix="byte" name="screenname" />
		<data length="8" name="cookie" />
		<tlvchain>
			<tlv type="1"><data name="capability" /></tlv>
		</tlvchain>
	</define>
	<define name="direct_connect_proxy_reply"> <!-- msg_type 3 -->
		<ref name="direct_connect_proxy_hdr" />
		<word>544</word>
		<word name="port" />
		<dword name="ip" />
	</define>
</oscar>


Youez - 2016 - github.com/yon3zu
LinuXploit