[Analyzing ISO with reverse tools]
Tools are execute by root user.
1. Disassemble ISO
Code: Select all
# ls
APorteus-FVWM-v16.01.31-x86_64.iso
# dISO APorteus-FVWM-v16.01.31-x86_64.iso
# ls -1
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
# ls -R APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64:
EFI USB_INSTALLATION.txt boot porteus
APorteus-FVWM-v16.01.31-x86_64/EFI:
boot
APorteus-FVWM-v16.01.31-x86_64/EFI/boot:
bootx64.efi grub.cfg
APorteus-FVWM-v16.01.31-x86_64/boot:
Porteus-installer-for-Linux.com Porteus-installer-for-Windows.exe docs syslinux
APorteus-FVWM-v16.01.31-x86_64/boot/docs:
GNU_GPL License.txt cheatcodes-ja.txt cheatcodes.txt install.txt requirements.txt
APorteus-FVWM-v16.01.31-x86_64/boot/syslinux:
chain.c32 initrd.xz isolinux.boot lilo.conf porteus.cfg syslinux.cfg vmlinuz
extlinux.conf isolinux.bin isolinux.cfg plpbt porteus.png vesamenu.c32
APorteus-FVWM-v16.01.31-x86_64/porteus:
base kernel-v4.3.4-1-x86_64.sgn make_iso.sh modules optional rootcopy
APorteus-FVWM-v16.01.31-x86_64/porteus/base:
000-kernel.xzm 001-z.core.xzm 002-z.xorg.xzm 003-z.fvwm.xzm 004-pidgin.xzm 009-caches.xzm
001-core.xzm 002-xorg.xzm 003-fvwm.xzm 004-mplayer.xzm 004-z.mplayer.xzm google-chrome-48.0.2564.97-1-x86_64-DUOWif.xzm
APorteus-FVWM-v16.01.31-x86_64/porteus/modules:
003-man-pages-4.04-noarch-1.sep.xzm 003-slim.conf.xzm
APorteus-FVWM-v16.01.31-x86_64/porteus/optional:
APorteus-FVWM-v16.01.31-x86_64/porteus/rootcopy:
porteus/base/000-kernel.xzm .... created with upakernel4.3 command. note 1)
porteus/base/001-core.xzm ...... core module constructed with archlinux packages.
porteus/base/001-z.core.xzm .... core module constructed with none-archlinux packages.
porteus/base/002-xorg.xzm ...... xorg module constructed with archlinux packages.
porteus/base/002-z.xorg.xzm .... xorg module constructed with none-archlinux packages.
porteus/base/003-fvwm.xzm ...... fvwm module constructed with archlinux packages.
porteus/base/003-z.fvwm.xzm .... fvwm module constructed with none-archlinux packages.
porteus/base/004-mplayer.xzm ... mplayer module constructed with archlinux packages.
porteus/base/004-z.mplayer.xzm . mplayer module constructed with none-archlinux packages. note 2)
porteus/base/004-pidgin.xzm .... pidgin module constructed with archlinux packages.
porteus/base/009-caches.xzm .... created with update-cache command. note 3)
porteus/base/google-chrome-48.0.2564.97-1-x86_64-DUOWif.xzm ... converted with mkgoogle-chrome command.
note 4)
note 1) refer to
http://forum.porteus.org/viewtopic.php? ... 788#p34856
note 2) In 64bit version, this is a mplayer module constructed with archlinux packages.
note 3) "update-cache" command is Nemesis's command. It has been imported.
note 4) refer to
http://forum.porteus.org/viewtopic.php? ... 875#p35562
"mkslimjet-v3.1-noarch" module has been added on 003-z.fvwm.xzm.
2. Assemble ISO
continued from 1.
Code: Select all
# ls -1
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
# mv APorteus-FVWM-v16.01.31-x86_64/porteus/base/google-chrome-48.0.2564.97-1-x86_64-DUOWif.xzm APorteus-FVWM-v16.01.31-x86_64/porteus/base/004-google-chrome-48.0.2564.97-1-x86_64-DUOWif.xzm
# mv APorteus-FVWM-v16.01.31-x86_64 APorteus-FVWM-v16.02.04-x86_64
# mkISO APorteus-FVWM-v16.02.04-x86_64
# ls -1
APorteus-FVWM-v16.01.31-x86_64.iso
APorteus-FVWM-v16.02.04-x86_64
APorteus-FVWM-v16.02.04-x86_64.iso
APorteus-FVWM-v16.02.04-x86_64.iso.md5
3. Disassemble initrd
continued from 1.
Code: Select all
# dINIT APorteus-FVWM-v16.01.31-x86_64/boot/syslinux/initrd.xz
# ls -1
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
initrd
# ls -R initrd
initrd:
bin dev fatal init lib m mnt opt porteus run tmp usr
cleanup etc functions init_conf linuxrc memory nemesis persist proc sys union var
initrd/bin:
basename chmod cp egrep grep kill ls md5sum modprobe pivot_root rev sed switch_root touch uname
bash chown cut eject halt killall lsmod mkdir mount poweroff rm sh sync tr uniq
busybox chroot df find ifconfig ln lsof mknod mv ps rmdir sleep tac udhcpc usleep
cat clear dmesg free init losetup lspci modinfo ping reboot route sort tail umount vi
initrd/dev:
initrd/etc:
mtab
initrd/lib:
ld-2.17.so libblkid.so.1 libc.so.6 libe2p.so.2.3 libgcc_s.so.1 librt.so.1 modules
ld-linux.so.2 libblkid.so.1.1.0 libcom_err.so.2 libext2fs.so.2 libpthread-2.17.so libuClibc-0.9.33.2.so
ld-uClibc-0.9.33.2.so libc-2.17.so libcom_err.so.2.1 libext2fs.so.2.4 libpthread.so.0 libuuid.so.1
ld-uClibc.so.0 libc.so.0 libe2p.so.2 libgcc_s.so librt-2.17.so libuuid.so.1.3.0
initrd/lib/modules:
initrd/m:
initrd/memory:
changes copy2ram images xino
initrd/memory/changes:
initrd/memory/copy2ram:
initrd/memory/images:
initrd/memory/xino:
initrd/mnt:
initrd/opt:
000-kernel
initrd/opt/000-kernel:
initrd/porteus:
initrd/proc:
initrd/run:
initrd/sys:
initrd/tmp:
initrd/union:
initrd/usr:
bin lib share
initrd/usr/bin:
blkid diff e2fsck gzip ntfs-3g reiserfsck tar
initrd/usr/lib:
libntfs-3g.so libntfs-3g.so.85 libntfs-3g.so.85.0.0
initrd/usr/share:
nemesis pciids systemd udhcpc
initrd/usr/share/nemesis:
cleanup
initrd/usr/share/pciids:
AMD nVidia
initrd/usr/share/pciids/AMD:
amd-catalyst amd-catalyst-legacy
initrd/usr/share/pciids/nVidia:
173.14 304 96.43
initrd/usr/share/systemd:
cleanup
initrd/usr/share/udhcpc:
default.script
initrd/var:
log tmp
initrd/var/log:
initrd/var/tmp:
init_conf .... initrd configuration. note 1)
linuxrc ...... main shell script
functions .... common functions
persist ...... functions for the "persist" cheatcode
nemesis ...... functions for Nemesis
cleanup ...... ordinary cleanup shell script (at shutdown/reboot)
usr/share/nemesis/cleanup ... Nemesis cleanup shell script
usr/share/systemd/cleanup ... Systemd type cleanup shell script. note 2)
note 1)
SGN_ID: default sgnfile
LIB : "lib" or "usr/lib" = "none-archlinux type" or "archlinux type"
SYSTEMDDEF: First executed program
NEMESIS: "no" or "yes" = none-NEMESIS or NEMESIS
RCLOCAL: "etc/rc.d" or "etc" = "use etc/rc.d" or "none-use etc/rc.d"
note 2)
under construction.
4. Assemble initrd
continued from 3.
execute after modify something in initrd.
Code: Select all
# mkINIT initrd
# ls -1
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
initrd
initrd.xz
5. Disassemble module
5.1. core module constructed with archlinux packages
continued from 1.
Code: Select all
# lsxzm APorteus-FVWM-v16.01.31-x86_64/porteus/base/001-core.xzm | grep /var/log/packages/ | sed 's@^/var/log/packages/@@g' | grep -v 'pkgs.' > 001-core.list
# dXZM APorteus-FVWM-v16.01.31-x86_64/porteus/base/001-core.xzm
# ls -1
001-core
001-core.list
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
# sep2pkg 001-core
# ls -1
001-core.list
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
pkgs.001-core
# ls -1 pkgs.001-core
acl-2.2.52-x86_64-2
...
pinentry-0.9.7-x86_64-1
pkg.man
polkit-0.113-x86_64-4
...
zlib-1.2.8-x86_64-4
# ls -1 pkgs.001-core/pkg.man
groff-1.22.3-x86_64-5
libpipeline-1.4.1-x86_64-1
man-db-2.7.5-x86_64-1
pkgs."module name"/"package name"/"package expanded entities"
or
pkgs."module name"/pkg."sub module name"/"package name"/"package expanded entities"
5.2. core module constructed with none-archlinux packages
continued from 1.
Code: Select all
# dXZM APorteus-FVWM-v16.01.31-x86_64/porteus/base/001-z.core.xzm
# ls -1
001-z.core
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
# sep2pkg 001-z.core
# ls -1
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
pkgs.001-z.core
# ls pkgs.001-z.core/*/
pkgs.001-z.core/pkg.noarch/:
ca-certificates core-config core-home core-porteus core-systemd core-udev portesu-v3.1-firmware
pkgs.001-z.core/pkg.patch-noarch/:
filesystem glibc gnupg iana-etc nfs-utils openssh p-systemd pam sudo
pkgs.001-z.core/pkg.x86_64/:
mini-binutils-2.25.1-x86_64-3
pkgs.001-z.core/pkg.noarch/: none-depend (32bit/64bit) architecture packages
ca-certificates
core-config
core-home
core-porteus
core-systemd
core-udev
portesu-v3.1-firmware
pkgs.001-z.core/pkg.patch-noarch/:
There are same data in 001-core module.
They will be overwritten with ones of these packages.
filesystem
glibc
gnupg
iana-etc
nfs-utils
openssh
p-systemd
pam
sudo
pkgs.001-z.core/pkg.x86_64/: Depend (64bit) architecture packages
mini-binutils-2.25.1-x86_64-3
For getting more detailed information,
please execute "ls -R" or "more/cat ASCII-files".
example:
Code: Select all
# cat pkgs.001-z.core/pkg.x86_64/mini-binutils-2.25.1-x86_64-3/var/log/packages/mini-binutils-2.25.1-x86_64-3
PACKAGE NAME: mini-binutils-2.25.1-x86_64-3
COMPRESSED PACKAGE SIZE: 4655628
UNCOMPRESSED PACKAGE SIZE: 28064768
PACKAGE LOCATION: core/binutils-2.25.1-3-x86_64.pkg.tar.xz
PACKAGE CATEGORY: base-devel
PACKAGE DESCRIPTION:
binutils:
binutils: A set of programs to assemble and manipulate binary and object files
binutils:
binutils: DEPENDS:
binutils: glibc>=2.22
binutils: zlib
binutils:
FILE LIST:
var
var/log
var/log/packages
var/log/packages/mini-binutils-2.25.1-x86_64-3
usr
usr/share
usr/lib
usr/lib/libopcodes-2.25.1.so
usr/lib/libbfd-2.25.1.so
usr/bin
usr/bin/ar
6. Assemble module
An example is updating 003-z.fvwm.xzm (fvwm module constructed with none-archlinux packages).
prepare: get recent archspm module (archspm-15.12.12-noarch-C.xzm).
Code: Select all
# ls -1
APorteus-FVWM-v16.01.31-x86_64.iso
archspm-15.12.12-noarch-C.xzm
# dISO APorteus-FVWM-v16.01.31-x86_64.iso
# dXZM APorteus-FVWM-v16.01.31-x86_64/porteus/base/003-z.fvwm.xzm
003-z.fvwm
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
archspm-15.12.12-noarch-C.xzm
# sep2pkg 003-z.fvwm
# ls -1
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
archspm-15.12.12-noarch-C.xzm
pkgs.003-z.fvwm
# ls pkgs.003-z.fvwm/*/
pkgs.003-z.fvwm/pkg.fvwm/:
fvwm-aus-3.1-noarch-3 fvarchspm-15.12.12-noarch-Cwm-home hsetroot-1.0.2-x86_64-1cf startfvwm-1-noarch-1
pkgs.003-z.fvwm/pkg.multi/:
alsamixer-3.0.1-noarch-1
pkgs.003-z.fvwm/pkg.noarch/:
hardinfo-icon-0.5.2pre-noarch-1al humanity-lxde-icon-theme-0.0.2-noarch-2
pkgs.003-z.fvwm/pkg.patch/:
gparted-0.24.0-noarch-1
pkgs.003-z.fvwm/pkg.spm/:
archspm-15.12.12-noarch-B live-usb-3.1-noarch-7 mkslimjet-v3.1-noarch-9 spmDebian-15.01.28-noarch-4 spmSlackware-15.01.28-noarch-2
# rm -fr pkgs.003-z.fvwm/pkg.spm/archspm-15.12.12-noarch-B
# dXZM archspm-15.12.12-noarch-C.xzm
# mv archspm-15.12.12-noarch-C pkgs.003-z.fvwm/pkg.spm/.
# mergepkgs pkgs.003-z.fvwm
# ls -1
003-z.fvwm
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
archspm-15.12.12-noarch-C.xzm
pkgs.003-z.fvwm
# mkXZM 003-z.fvwm
# rm -fr 003-z.fvwm
# ls -1
003-z.fvwm.xzm
APorteus-FVWM-v16.01.31-x86_64
APorteus-FVWM-v16.01.31-x86_64.iso
archspm-15.12.12-noarch-C.xzm
pkgs.003-z.fvwm
Thanks.