Otázka:
ARM shellcode pro linux - svc 0 vs svc 1
user1743
2014-04-30 22:55:24 UTC
view on stackexchange narkive permalink

Odhlášení systému Linux ARM Shellcode Vidím, že systémové volání probíhá pomocí instrukce svc 1 . Také jsem ale viděl příklady, kde používají svc 0 jako instrukci, která volá systémové volání.

Je zřejmé, že systémová volání v Linuxu na ARM lze provést pomocí svc 0 a svc 1 . Proč tomu tak je na rozdíl od architektur, jako je x86 . Jsou druh přerušení generovaného oběma těmito pokyny stejný?

Je to stejné přerušení. Část parametru #imm (0, 1 atd.) Je Linux IIRC ignorována.
Jeden odpovědět:
yaspr
2014-04-30 23:21:39 UTC
view on stackexchange narkive permalink

Předpokládám, že byste měli zkontrolovat tuto část dokumentace ARM a tento popis svc a jeho parametry. Křížovým odkazem na tyto dva odkazy najdete odpověď na svou otázku.

Z výše uvedených odkazů budete schopni pochopit, co představuje parametr instrukce svc . Má to být ignorováno CPU , ale obslužný program výjimek může tento parametr použít k určení požadované služby: instrukce ARM , pokud je hodnota mezi 0 & 16777215, nebo Palec instrukce, pokud je hodnota mezi 0 & 255.

Sada instrukcí palce je kompaktní 16bitové kódování pro instrukce ARM. Byl navržen hlavně & implementovaný pro kompaktní hustotu kódu. Na stránce Wikipedia o architektuře ARM najdete další informace, ale pro přesné technické podrobnosti bych vám doporučil projít si dokumentaci ARM .

mohl byste přidat krátkou odpověď odvozenou z těchto odkazů?
Tady to máme: hotovo!


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...