Saturday, March 18, 2017

vim print

:ha print the whole document to default printer
To print the lines starting from line m to line n:
:m,n ha >printout.ps or :m,n hardcopy >printout.ps
Without the >printout.ps part, the default printer will be used.


Tuesday, August 30, 2016

buildroot qemu ARM

build embedded system for qemu and ARM with buildroot (buildroot-2016.05)

use qemu_arm_versatile_defconfig config file as base config
$make qemu_arm_versatile_defconfig

changed nothing
$make

run
$qemu-system-arm 
-M versatilepb 
-kernel output/images/zImage 
-dtb output/images/versatile-pb.dtb 
-drive file=output/images/rootfs.ext2,if=scsi,format=raw 
-append "root=/dev/sda console=ttyAMA0,115200" 
-nographic 
-net nic,model=rtl8139 -net user

can be replace with:
-hda=output/images/rootfs.ext2


-M Set the emulated machine type
-kernel 
-dtb device tree image
-drive block device option
-append kernel command line /-drive/
-nographic disable graphical output and redirect serial I/Os to console

execution command taken from:
buildroot-2016.05/board/qemu/arm-versatile/readme.txt

Wednesday, July 22, 2015

nohup vs &




reference
http://stackoverflow.com/questions/21294283/when-did-hup-stop-getting-sent-and-what-can-i-do-about-it
http://stackoverflow.com/questions/4298741/how-bash-handles-the-jobs-when-logout
http://stackoverflow.com/questions/15595374/whats-the-difference-between-nohup-and-ampersand
http://www.astro.washington.edu/users/sjschmidt/premap/linux/processes.html

Saturday, May 16, 2015

LKM syscall links

http://commons.oreilly.com/wiki/index.php/Network_Security_Tools/Modifying_and_Hacking_Security_Tools/Fun_with_Linux_Kernel_Modules

http://asm.sourceforge.net/syscall.html#1

http://crashcourse.ca/introduction-linux-kernel-programming/lesson-17-your-first-character-device-driver

http://syprog.blogspot.co.il/2011/10/hijack-linux-system-calls-part-iii.html

https://www.thc.org/papers/LKM_HACKING.html#II.1.

http://www.hackercurriculum.org/linux-rootkits

http://tuxthink.blogspot.co.il/2010/11/writing-example-driver-from-scratch.html

http://crashcourse.ca/introduction-linux-kernel-programming/lesson-16-lets-talk-about-devices

https://books.google.co.il/books?id=96V4AgAAQBAJ&pg=PA274&dq=nf_hook_ops&hl=en&sa=X&ei=8WBhVYLmEYr3UoC3gLAM&ved=0CBwQ6AEwAA#v=onepage&q=nf_hook_ops&f=false

https://gcc.gnu.org/onlinedocs/cpp/Macros.html#Macros

http://www.linuxjournal.com/article/7184

http://lxr.free-electrons.com/

http://kevinboone.net/linuxfile.html

http://webcourse.cs.technion.ac.il/230349/Winter2014-2015/en/ho_Slides.html

Saturday, May 2, 2015

copy file with ssh without scp




text file

cat /tmp/aaa | ssh user@host "cat - > aaa"
ssh user@host cat < /tmp/aaa ">" aaaa

from remote to local
ssh user@host cat > /tmp/bbb "<" bbb

uuencode - encode a binary file

 -m     Encode  the  output using the MIME Base64

http://www.commandlinefu.com/commands/view/4408/copy-a-file-over-ssh-without-scp


Saturday, April 18, 2015

GDB cross compiler

objective
  • compile gdb static for mips /el



pre
  • create build and source folders
  • download gdb 7.9 and termcap 1.3.1 to source folder
  • create cross compiler with buildroot or crosstool-ng (i used buildroot)



termcap
under build folder create sub folder 
(host)$mkdir -p build/termcap/mipsel
(host)$export CC=<path>/buildroot/output/mipsel/host/usr/bin/mipsel-linux-gcc
(host)$./configure --host=mipsel-linux --prefix='/<path>/build/termcap/mipsel/'
(host)$make
(host)$make install


gdb 7.9
(host)set PATH=/to/gcc/folder
(host)$cd to gdb-7.9 folder #don't run process from gdb subfolder see README
(host)$export CC=<path>/buildroot/output/mipsel/host/usr/bin/mipsel-linux-gcc
#set ld flags: static and point to termcap lib folder
(host)$export LDFLAGS="-static -L/<path>/build/termcap/mipsel/lib"
#set include to termcap include folder
(host)$export CFLAGS="-g -O2 -I/<path>/build/termcap/mipsel/include"
(host)$./configure --host=mipsel-linux --prefix='/<path>/build/gdb_mipsel' --disable-werror
(host)$make
(host)$make install


Note
host: compiler prefix


reference
http://tigertop.blogspot.co.il/2011/03/building-gdb-72-for-arm-architecture-on.html




Friday, April 17, 2015

first mips assembly

LAB

objective
  • compile mips assembly with gcc
  • run in emulation


setup
  • gcc: aboriginal cross compiler , mipsel
  • emulator: qemu-user-static


sudo apt-get install qemu-user-static

vim exit.S
#include <sys/regdef.h>
#include <asm/unistd.h>

.data
.text
.global main
main:
        .set noreorder
        .cpload t9
        .set reorder
        li a0, 99
        li v0, __NR_exit
        syscall


note: file ext must be capital S

compile
include cross gcc in path or point run directly
$mipsel-gcc -o exit exit.S

run
copy qemu to chroot folder

$cp $(which qemu-mipsel-static) .
$sudo chroot . ./qemu-mipsel-static ./exit


/lib/ld-uClibc.so.0: No such file or directory

we get error because we compile dynamicly and the lib folder not include in chroot folder

we need to bind the lib folder for outside the chroot to chroot location

$mkdir lib
$sudo mount --bind <path/to/cross_compile/lib> lib

$sudo chroot . ./qemu-mipsel-static ./exit

checking

echo $?
99 # the return value for exit syscall