Services Blog Français

Speed up your travis-ci builds with container based infrastructure

| by jpic | travis-ci python django linux

Travis-ci just released container based infrastructure for open source repository (free users).

We tried it with our apps, and you can see we had some performance increase, even on database-intensive jobs:

Install Arch Linux on a dedicated server via Ubuntu Live

| by jpic | linux dedibox ansible

In the process of making YourLabs new cloud, I ordered a first dedicated server at online.net. They don’t provide an installer for Arch Linux, but they do provide a “rescue mode” which is at this time Ubuntu 13.04 Live. Boot that and get an Arch Linux install on BtrFS with just one command:

Format /dev/sda to BtrFS Partionning and install arch linux in subvolumes with just one command:

ansible-playbook -i "yourhostname," -e "hostname=your_host_name" --ask-sudo-pass rescue_reinstall_arch_linux.yml

If you just want to debug your arch root on /dev/sda through Ubuntu Live, then this command will make it operationnal in /tmp/root.x86_64/mnt:

Read More

Fun with debugging symbols

| by jpic | linux gdb security

This article follows up with Basics of GDB debugging, focus on symbols.

List symbols with nm

Use the nm command to list symbols in a binary:

$ nm main
0000000000600920 B __bss_start
0000000000600920 b completed.6330
0000000000600910 D __data_start
0000000000600910 W data_start
0000000000400440 t deregister_tm_clones
00000000004004b0 t __do_global_dtors_aux
00000000006006f8 t __do_global_dtors_aux_fini_array_entry
0000000000600918 D __dso_handle
0000000000600708 d _DYNAMIC
0000000000600920 D _edata
0000000000600928 B _end
00000000004005a4 T _fini
00000000004004d0 t frame_dummy
00000000006006f0 t __frame_dummy_init_array_entry
00000000004006e8 r __FRAME_END__
00000000006008e0 d _GLOBAL_OFFSET_TABLE_
                 w __gmon_start__
00000000004003a8 T _init
00000000006006f8 t __init_array_end
00000000006006f0 t __init_array_start
00000000004005b0 R _IO_stdin_used
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
0000000000600700 d __JCR_END__
0000000000600700 d __JCR_LIST__
                 w _Jv_RegisterClasses
00000000004005a0 T __libc_csu_fini
0000000000400530 T __libc_csu_init
                 U __libc_start_main@@GLIBC_2.2.5
00000000004004fd T main
                 U printf@@GLIBC_2.2.5
0000000000400470 t register_tm_clones
0000000000400410 T _start
0000000000600920 D __TMC_END__
0000000000600924 B YourGlobalVariable

Here’s a snippet from man nm which explains what we see here:

Read More

GDB debugging basics

| by jpic | linux gdb security

Introduction

GDB is a debugger for executables “objects” on Linux. It will use source code and “debug symbols” if available:

  • source code to display the code ie. corresponding to a specific frame at runtime,
  • debug symbols to display variables and functions names like in the code.

What’s the relation between security and GDB ? Well it will help finding security bugs which may be vulnerabilities to buffer overflow.

Debugging with sources and debug symbols

Consider the following C source code example for hello world:

Read More
Previous Page 23 of 33 Next Page

They trust us

Contact

logo