A Windows Command
source : http://www.w3schools.com/asp/default.asp
BEAUTY AND PLAY
source : http://www.w3schools.com/asp/default.asp
$cat hello.pl # Prints the message using two different delimeters. print "Hello, world!\n"; print qq=Did you say "Hello?"\n=; $perl hello.pl Hello, world! Did you say "Hello?" $
"print" is categorized under Input/Output Functions. Prints the message using two different delimeters.
source : http://sandbox.mc.edu/~bennet/perl/leccode/index.html
$cat /proc/sys/net/ipv4/tcp_retries2 15 $
How many times to retry before killing alive TCP connection. RFC1122 says that the limit should be longer than 100 sec. It is too small number. The default value of 15 corresponds to ~ 13 - 30 minutes, depending on RTO.
snippet 1
{
.procname = "tcp_retries2",
.data = &sysctl_tcp_retries2,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec
},
snippet 2
if (retransmits_timed_out(sk, sysctl_tcp_retries1, 0, 0)) {
/* Black hole detection */
tcp_mtu_probing(icsk, sk);
dst_negative_advice(sk);
}
retry_until = sysctl_tcp_retries2;
if (sock_flag(sk, SOCK_DEAD)) {
const int alive = (icsk->icsk_rto < TCP_RTO_MAX);
retry_until = tcp_orphan_retries(sk, alive);
do_reset = alive ||
!retransmits_timed_out(sk, retry_until, 0, 0);
if (tcp_out_of_resources(sk, do_reset))
return 1;
}
A tool for TCP stack testing and TCP/IP fingerprinting
(a.k.a. OS detection) is introduced. While tools
presently exist to do either OS detection[1, 2] or TCP
stack testing[3, 4], the methods they employ are limited
by the techniques and analysis performed, sometimes
resulting in incorrect re- sults or no results at all. We
introduce synscan, a tool whose objective is to
fingerprint every aspect of a TCP/IP
implementation. synscan is not meant as a
proof-of-concept tool; rather, it is a robust and useful
tool which can be used in addition to others for TCP/IP
stack testing and OS de- tection. synscan incorporates
most of the techiques used by the existing tools and
introduces a number of new ones. synscan's s primary
advantage is that each test begins with a TCP SYN segment
(hence the name) to an open port, giving it the ability
to test and fingerprint even the most fortified
hosts. Conclusive data from large network scans and com-
parisons to results from existing tools are also
reported.
source:
SYNSCAN: Towards Complete TCP/IP Fingerprinting
Greg Taleck
NFR Security, Inc.
5 Choke Cherry Rd, Suite 200
Rockville, MD 20850
[BITS 32] [global start] [extern _k_main] ; this is in the c file start: call _k_main cli ; stop interrupts hlt ; halt the CPU
.global start [extern _k_main] ; _start: call _k_main cli ; hlt ;
$as --64 kernel_start.s kernel_start.s: Assembler messages: kernel_start.s:2: Error: junk at end of line, first unrecognized character is `[' $
boot.s is loaded at 0x7c00 by the bios startup routines and moves itself out of the way to address 0x90000, and jumps there.It then loads the system at 0x10000, using BIOS interrupts. Thereafter it disables all interrupts,moves the system down to 0x0000 , changes to protected mode and calls the start of system. The system then should reinitialize the protected mode in it's own tables, and enables interrupts as needed.
currently system is atmost 8*65536 bytes long. This should be no problem even in the future. I want to keep it simple.This 512 size kernel kB kernel size should be enough - infact more would mean we should have to move not just these startup routines, but also do something about the cache memory(block I/O devices.the area left over in the lower 640kB is meant for these.No oher memory is assumed to be "physical", ie all memory above 1Mb is demand paging. All addresses under 1Mb are guaranteed to match their physical addresses.
$grep -r setup *
boot/head.s: call setup_idt
boot/head.s: call setup_gdt
boot/head.s: mov %ax,%es # reloaded in 'setup_gdt'
boot/head.s: * setup_idt
boot/head.s:setup_idt:
boot/head.s: * setup_gdt
boot/head.s:setup_gdt:
boot/head.s: jmp setup_paging
boot/head.s:setup_paging:
include/linux/sys.h:extern int sys_setup();
include/linux/sys.h:fn_ptr sys_call_table[] = { sys_setup, sys_exit, sys_fork, sys_read,
include/unistd.h:#define __NR_setup 0 /* used only by init, to get system going */
init/main.c:static inline _syscall0(int,setup)
init/main.c: * Interrupts are still disabled. Do necessary setups, then
init/main.c: setup();
kernel/hd.c:int sys_setup(void)
The Interrupt Descriptor Table (IDT) is an array of 8 byte interrupt descriptors in memory devoted to specifying (at most) 256 interrupt service routines. The first 32 entries are reserved for processor exceptions, and any 16 of the remaining entries can be used for hardware interrupts. The rest are available for software interrupts. source : http://www.acm.uiuc.edu/sigops/roll_your_own/i386/idt.html
The lea instruction places the address specified by its second operand into the register specified by its first operand. Note, the contents ofthe memory location are not loaded, only the effective address is computed and placed into the register. This is useful for obtaining a pointer into a memory region. source: http://www.cs.virginia.edu/~evans/cs216/guides/x86.html