From 311a8555d98d57d7afb7fd68184f4157a54b6b43 Mon Sep 17 00:00:00 2001 From: op-code-syscall Date: Sun, 12 Jul 2020 04:18:37 +0200 Subject: [PATCH] fork syscall assembly demo --- .sys_fork.s.swp | Bin 0 -> 12288 bytes sys_fork | Bin 0 -> 14408 bytes sys_fork.o | Bin 0 -> 976 bytes sys_fork.s | 30 ++++++++++++++++++++++++++++++ 4 files changed, 30 insertions(+) create mode 100644 .sys_fork.s.swp create mode 100755 sys_fork create mode 100644 sys_fork.o create mode 100644 sys_fork.s diff --git a/.sys_fork.s.swp b/.sys_fork.s.swp new file mode 100644 index 0000000000000000000000000000000000000000..c894b90e45a5ebfe68b612a7bb23927b93fa293a GIT binary patch literal 12288 zcmeI2J#W)M7{{L?0WuPAWdjKvAXJ7laVQN{C6ItD9m-N*VX!W?3od@^`BIsI_9HNX z_yl|eJ_Mftm5~J|Mwk$P8`q68kP#LAPx|@poag24w?)aweX_Q$R=Rz`I4APPoboi7SH z@Bcr~iu?fIz*q1Y?1PWsJ$MJ+g4bXV?1EQd8wB7f7=i(~0WN`ga1xvV$H6c3{0_c= zeNdm_2s-4EX@CZ3fCgxQ255i=Xn+Q2fCm1N0S7}I{Hfg6aV$=f?I;sO9pyG_U1D7> zJrFM}BfE-II$KGu>fJZgsUb!(@TB cTI5-rjdZN)k|HP*n)Kj0a)0g7h8opW(^k+!dtv3o4z_S?v+JNl z9Jp{O2mS|6J?F@+IU$Y_e*qVyA}(-%W6gUr@7t_54iX2XO3YNA_ulv3n|brCGpnRC zU#-+ugHnmm0$L)m!iuqw>xq7R+nS0k(i9n*p>uSKkqQ17>k;WR$O9c3a!TXMEG3Tu z1p?y~l`lDqAW@-6o2P!6(KRO@>UfY;abC%r6jg1~^+DcnVFZb|Y`#zfLgN&b*>LL4 z=Lt9ak#p=X8LL3{bwQBGlk)#5@0R94g3phB88n2KljcJ_qz*%uI_-^x%a=Nh*-pE= zvpc)HxG=kLIZAucyscN_q$b2$P;J4AIQ%EcC)qJG&dGIb%CrmAPuktV7G1BcSFgqM z(R_4;QuF7dVNaCBz=&{XzFFQ2 z4EOGAwa7bx5kdI1_hoAl$@yey7o4DHRYJ(Qb=&luG0r6;{uy=4`D1C%IYEbkvD%}d zt8ZUz{!esUFV^$B+V|COlm5dF=h2H(oX7e2q9bRQ<@9%8a)?vQd>%Utj5Bh5nabI7 z$-#_HWY1$1pUj@yD1M5@@l&SL1YSqur!xLWaXvaeW}RjJR)k}5{&wggh|zJ*Qe`au z6piDzOivT(_Xp$1^PiwUhOi;eTIKk>&s+Qqy;`XAb;YX%T;OrzzsY!sj@K#IJxXKh zTxYz(cvz_a7UMJgDYga!Rt?oQOIr!9&adtDB9a*#OB z7tJJX_qroS%)X@AsYiWYL^Npba-Z~UZBeroZzc8ZrX8ie-QMKP-oQp4XY$`6FLJni z2Lq%9#%T)R9uC~tuVBByiX8tzei#_G_{T*7?2Fj1ac>3oYaII*?|sO}{=Hb3AMwby zlW;f7AKAN+kNy3Q0&^NDHA?Ns$G$ChOk{6IKHeAi6u|p|Lu@Oq|0<)hmm?qh(|rX{ zHzeX9Kj3_MH^9a|wy!{FXLTIs>sOfWvLa(w6*vrx)ebcu>y#MYeU7dF6UJm*xqDo5B${Px# literal 0 HcmV?d00001 diff --git a/sys_fork.o b/sys_fork.o new file mode 100644 index 0000000000000000000000000000000000000000..57afee38a1c08d34aac90f7785109572e94baa31 GIT binary patch literal 976 zcmbVK%}T>S5T3M+^$!y8qMo9l;3ZfPM9`9pl7sIMBS|sXKe8*dC%yU>eGG4U@)>*t z!IO8P&SWRFOag)f%gp!9d^wU=!>>#e2B4GWAsF!!MgZawYk$YnDgY`E0Hm+61+wAwy*Y&?) z@|5dJC;J~^Lf#40&RBoULaL!7$^PRk@h-aFL9%WNzu@HzBgYP34FM27zlWW-PlAq( z`Ev}4q(ejb`6!8X48Be$8hmx9bgtuDjHUzQ8Ruy~Hbu14Uq*Ab;Co(I*R1`abdS}S z*eW)Vw+3)n@QsS1!~DKzyouNq96=A4TiJy&Y-*~a-YCEK6^!$2sC&jmd8!`z8lpj* h4IwI05k3Y)=_J#o7@++BG{N$8yIevX{i~n3v0rZ^LwEoH literal 0 HcmV?d00001 diff --git a/sys_fork.s b/sys_fork.s new file mode 100644 index 0000000..bc06447 --- /dev/null +++ b/sys_fork.s @@ -0,0 +1,30 @@ +BITS 64 + +extern printf + +global _main + +section .rodata + print_result db 'pid => %d', 10, 0 +section .text + +_main: + jmp _print_pid + + +_print_pid: + mov rax, 57 + syscall + mov rdi, print_result + mov rsi, rax + xor rax, rax + call printf + syscall + jmp _exit + + +_exit: + mov rax, 0x3C + mov rdi, 0 + syscall +