OPENSC-EXPLORER(1) OpenSC Tools OPENSC-EXPLORER(1)

opensc-explorer - ابزار تعاملی عمومی برای دسترسی به عملکردهای کارت هوشمند و توکن‌های امنیتی مشابه

opensc-explorer [OPTIONS] [SCRIPT]

ابزار opensc-explorer می‌تواند برای انجام عملیات متفرقه مانند کاوش محتویات یا ارسال دستورهای دلخواه APDU به یک کارت هوشمند یا توکن امنیتی مشابه استفاده شود.

اگر یک SCRIPT مشخص شده باشد، opensc-explorer در حالت غیرتعاملی اجرا شده و دستورها را به‌صورت خط‌به‌خط از SCRIPT می‌خواند. اگر اسکریپتی داده نشود، opensc-explorer در حالت تعاملی اجرا می‌شود و دستورها را از ورودی استاندارد می‌خواند.

در ادامه گزینه‌های خط فرمان برای opensc-explorer آمده است. پس از اجرا، دستورهای تعاملی دیگری نیز در دسترس خواهند بود.

--card-driver driver, -c driver

از راه‌انداز کارت (driver) مشخص‌شده استفاده می‌کند. پیش‌فرض، تشخیص خودکار راه‌انداز کارت مناسب است. مقدار دقیق ? تمام راه‌اندازهای کارت موجود را فهرست کرده و به اجرای opensc-explorer پایان می‌دهد.

--mf path, -m path

فایل ارجاع‌داده‌شده توسط مسیر مشخص‌شده را هنگام راه‌اندازی انتخاب می‌کند. پیش‌فرض، مسیر فایل اصلی استاندارد، یعنی 3F00 است. اگر path خالی باشد (مانند opensc-explorer --mf "")، هیچ فایلی به‌طور صریح انتخاب نمی‌شود.

--reader arg, -r arg

شماره کارت‌خوان مورد استفاده. به‌طور پیش‌فرض، نخستین کارت‌خوانی که کارتی در آن قرار دارد استفاده می‌شود. اگر arg یک ATR باشد، کارت‌خوان دارای کارت منطبق انتخاب خواهد شد.

--verbose, -v

موجب پرگویی بیشتر opensc-explorer می‌شود. این پرچم را چند بار مشخص کنید تا خروجی اشکال‌زدایی در کتابخانه opensc فعال شود.

--wait, -w

منتظر وارد شدن یک کارت می‌ماند.

opensc-explorer از دستورها به همراه آرگومان‌هایشان در اعلان تعاملی خود یا در فایل‌های اسکریپت ارسال‌شده از طریق پارامتر خط فرمان SCRIPT پشتیبانی می‌کند.

مشابه یک شل دستوری مانند bash، هر خط ورودی به کلماتی که با نویسه فاصله (white-space) جدا شده‌اند تقسیم می‌شود. از میان این کلمات، کلمه نخست به‌عنوان دستور و کلمات باقی‌مانده به‌عنوان آرگومان‌های آن دستور در نظر گرفته می‌شوند.

دستورهای زیر پشتیبانی می‌شوند:

# ...

خط را به‌عنوان توضیح (کامنت) در نظر می‌گیرد. هر چیزی تا انتهای خط که با # آغاز شده باشد نادیده گرفته می‌شود.

apdu data...

یک دستور سفارشی APDU به کارت ارسال می‌کند. data مجموعه‌ای از توالی‌های مقادیر هگزادسیمال و رشته‌های محصور در نقل‌قول دوگانه ("...") است.

asn1 file-id [rec-no] [offs]

محتوای کدگذاری‌شده با ASN.1 مربوط به EF فعال مشخص‌شده با file-id را تجزیه کرده و چاپ می‌کند. اگر پارامتر اختیاری rec-no داده شده باشد و فایل یک EF رکورد-محور باشد، تنها رکورد تعیین‌شده توسط این پارامتر را تجزیه و چاپ می‌کند. اگر پارامتر اختیاری offs داده شده باشد، تجزیه و چاپ فایل یا رکورد را از آفست مشخص‌شده با مقدار داده‌شده آغاز می‌کند. در صورت مشخص نشدن این پارامتر، آفست پیش‌فرض 0 است.

cat [file-id | sfi:short-id] [rec-no]

محتویات EF فعال مشخص‌شده توسط file-id یا شناسه کوتاه فایل short-id را چاپ می‌کند. اگر پارامتر اختیاری دوم rec-no داده شده باشد، تنها رکورد تعیین‌شده با این پارامتر را چاپ می‌کند. اگر آرگومانی داده نشود، محتویات EF انتخاب‌شده فعلی را چاپ می‌کند.

cd {.. | file-id | aid:DF-name}

به یک DF دیگر که با آرگومان ارائه‌شده مشخص می‌شود تغییر مسیر می‌دهد. اگر آرگومان داده‌شده .. باشد، در سلسله‌مراتب سیستم فایل یک سطح به بالا می‌رود. اگر یک file-id باشد که باید یک DF مستقیماً زیر DF فعلی باشد، به آن DF تغییر مسیر می‌دهد. اگر یک شناسه برنامه باشد که به‌صورت aid:DF-name داده شده، به MF برنامه‌ای که با DF-name مشخص شده پرش می‌کند.

change CHVpin-ref [[old-pin] new-pin]

مقدار PIN مشخص‌شده توسط pin-ref را از مقدار داده‌شده در old-pin به new-pin تغییر می‌دهد.

مقادیر old-pin و new-pin می‌توانند توالی‌هایی از مقادیر هگزادسیمال، رشته‌های محصور در نقل‌قول دوگانه ("...")، خالی ("") یا غایب باشند. در صورت غایب بودن، مقادیر از پین‌پد کارت‌خوان خوانده می‌شوند.

مثال‌ها:

change CHV2 00:00:00:00:00:00 "foobar"

تغییر دادن PIN مربوط به CHV2 به مقدار جدید foobar، با مشخص کردن مقدار پیشین 00:00:00:00:00:00.

change CHV2 "foobar"

تنظیم PIN مربوط به CHV2 به مقدار جدید foobar.

change CHV2

تغییر دادن PIN مربوط به CHV2 با استفاده از پین‌پد کارت‌خوان.

create file-id size

یک EF جدید ایجاد می‌کند. file-id شناسه عددی و size اندازه EF مورد نظر برای ایجاد را مشخص می‌کند.

debug [level]

سطح اشکال‌زدایی OpenSC را روی level تنظیم می‌کند.

اگر level ذکر نشود، سطح اشکال‌زدایی فعلی را نشان می‌دهد. delete file-id

حذف EF یا DF مشخص‌شده با file-id.

do_get hex-tag [output]

کپی کردن محتوای شیء داده‌ای (DO) کارت مشخص‌شده با hex-tag به فایلی در رایانهٔ میزبان محلی به نام output.

اگر output داده نشود، محتوای hex-tag به صورت hex-dump نمایش داده خواهد شد.

do_put hex-tag data

تغییر محتوای شیء داده‌ای (DO) کارت مشخص‌شده با hex-tag به data.

data یا دنباله‌ای از مقادیر هگزادسیمال است یا رشته‌ای محصور در علامت نقل‌قول دوتایی ("...").

echo string...

چاپ کردن stringهای داده‌شده.

erase

پاک کردن کارت، در صورتی که کارت از آن پشتیبانی کند.

get file-id [output]

کپی کردن یک EF به یک فایل محلی. فایل محلی با output مشخص می‌شود در حالی که فایل کارت با file-id تعیین می‌گردد.

اگر output ذکر نشود، نام فایل خروجی از مسیر کامل کارت به file-id مشتق خواهد شد.

get_record file-id rec-no [output]

کپی کردن یک رکورد از یک EF رکورد-محور به یک فایل محلی. فایل محلی با output مشخص می‌شود در حالی که فایل کارت و رکورد با file-id و rec-no مشخص می‌گردند،

اگر output ذکر نشود، نام فایل خروجی از مسیر کامل کارت به file-id. و rec-no. مشتق خواهد شد.

help [pattern]

نمایش فهرست دستورهای موجود، گزینه‌ها و پارامترهای آن‌ها همراه با یک متن راهنمای کوتاه. اگر pattern داده شود، دستورهای نمایش‌داده‌شده به مواردی که با pattern تطابق دارند محدود می‌شوند.

info [file-id]

نمایش مشخصه‌های فایل مشخص‌شده با file-id. اگر file-id ارائه نشود، مشخصه‌های فایل جاری نمایش داده می‌شوند.

ls [pattern...]

فهرست کردن فایل‌ها در DF جاری. اگر هیچ patternی داده نشود، تمام فایل‌ها فهرست می‌شوند. اگر یک یا چند pattern داده شود، تنها فایل‌هایی که دست‌کم با یک pattern تطابق دارند فهرست خواهند شد.

find [start-id [end-id]]

یافتن تمام فایل‌ها در DF جاری. فایل‌ها با انتخاب تمامی شناسه‌های فایل در بازهٔ start-fid تا end-fid پیدا می‌شوند.

در صورت عدم ارائه، مقدار پیش‌فرض برای start-fid برابر با 0000، و مقدار پیش‌فرض برای end-fid برابر با FFFF است.

find_tags [start-tag [end-tag]]

یافتن تمام برچسب‌های اشیاء داده‌ای در زمینهٔ جاری. برچسب‌ها با استفاده از GET DATA در بازهٔ start-tag تا end-tag پیدا می‌شوند.

در صورت عدم ارائه، مقدار پیش‌فرض برای start-tag برابر با 0000، و مقدار پیش‌فرض برای end-tag برابر با FFFF است.

mkdir file-id size

ایجاد یک DF. file-id شناسهٔ عددی، و size اندازهٔ DF را برای ایجاد مشخص می‌کند.

pin_info key-typekey-id

دریافت اطلاعات دربارهٔ یک PIN یا کلید از کارت، که در آن key-type می‌تواند یکی از مقادیر CHV، KEY، AUT یا PRO باشد. key-id عددی است که نمایانگر ارجاع کلید یا PIN است.

put file-id input

کپی کردن یک فایل محلی به کارت. فایل محلی با input مشخص می‌شود در حالی که فایل کارت با file-id تعیین می‌گردد.

quit

خروج از برنامه.

random count [output-file]

تولید count بایت از داده‌های تصادفی. اگر output-file داده شود، داده‌ها در فایل رایانهٔ میزبان مشخص‌شده با آن نوشته می‌شوند، در غیر این صورت داده‌ها به صورت hex dump نمایش داده خواهند شد.

rm file-id

حذف EF یا DF مشخص‌شده با file-id.

unblock CHVpin-ref [puk [new-pin]]

رفع انسداد PIN مشخص‌شده با pin-ref با استفاده از PUK puk، و در صورت امکان تغییر مقدار آن به new-pin.

puk و new-pin می‌توانند دنباله‌ای از مقادیر هگزادسیمال، رشته‌های محصور در علامت نقل‌قول دوتایی ("...")، خالی ("")، یا ذکر نشده باشند. در صورت ذکر نشدن، مقادیر از صفحه کلید کارت‌خوان (pin pad) خوانده می‌شوند.

مثال‌ها:

unblock CHV2 00:00:00:00:00:00 "foobar"

رفع انسداد PIN CHV2 با استفاده از PUK 00:00:00:00:00:00 و تنظیم آن بر روی مقدار جدید foobar. unblock CHV2 00:00:00:00:00:00 ""
رفع مسدودیت PIN مربوط به CHV2 با استفاده از PUK با مقدار 00:00:00:00:00:00 و حفظ مقدار قبلی.

unblock CHV2 "" "foobar"

تنظیم مقدار جدید PIN مربوط به CHV2 روی foobar.

unblock CHV2 00:00:00:00:00:00

رفع مسدودیت PIN مربوط به CHV2 با استفاده از PUK با مقدار 00:00:00:00:00:00. مقدار جدید PIN توسط pinpad درخواست می‌شود.

unblock CHV2 ""

تنظیم PIN مربوط به CHV2. مقدار جدید PIN توسط pinpad درخواست می‌شود.

unblock CHV2

رفع مسدودیت PIN مربوط به CHV2. کد رفع مسدودیت و مقدار جدید PIN توسط pinpad درخواست می‌شوند.

update_binary file-id offs data

بروزرسانی باینری فایل تعیین‌شده با file-id توسط داده‌های لفظی data با شروع از آفست تعیین‌شده با offs.

data می‌تواند به صورت دنباله‌ای از مقادیر هگزادسیمال یا به صورت یک رشته محصور در علامت نقل‌قول ("...") ارائه شود.

update_record file-id rec-nr rec-offs data

بروزرسانی رکورد تعیین‌شده با rec-nr از فایل مشخص‌شده با file-id توسط داده‌های لفظی data با شروع از آفست تعیین‌شده با rec-offs.

data می‌تواند به صورت دنباله‌ای از مقادیر هگزادسیمال یا به صورت یک رشته محصور در علامت نقل‌قول ("...") ارائه شود.

verify key-typekey-id [key]

ارائه یک PIN یا کلید به کارت، که در آن key-type می‌تواند یکی از موارد CHV، KEY، AUT یا PRO باشد. key-id عددی است که مرجع کلید یا PIN را مشخص می‌کند. key کلید یا PIN مورد اعتبارسنجی است که به صورت دنباله‌ای از مقادیر هگزادسیمال جداشده با دونقطه یا رشته‌ای محصور در علامت نقل‌قول ("...") قالب‌بندی می‌شود.

اگر key حذف شود، رفتار دقیق به ویژگی‌های کارت‌خوان بستگی دارد: اگر کارت‌خوان از ورود PIN از طریق pin pad پشتیبانی کند، اعتبارسنجی PIN با استفاده از pin pad کارت‌خوان انجام خواهد شد. اگر کارت‌خوان از ورود PIN پشتیبانی نکند، PIN به صورت تعاملی پرسیده خواهد شد.

مثال‌ها:

verify CHV2 31:32:33:34:00:00:00:00

اعتبارسنجی CHV2 با استفاده از مقدار هگز 31:32:33:34:00:00:00:00

verify CHV1 "secret"

اعتبارسنجی CHV1 با استفاده از مقدار رشته‌ای secret.

verify KEY2

اعتبارسنجی KEY2، دریافت مقدار از pin pad کارت‌خوان.

sm {open | close}

فراخوانی گرداننده پیام‌رسانی امن (Secure Messaging) برای open یا close کارت.

opensc-tool(1)

opensc-explorer توسط Juha Yrjölä <juha.yrjola@iki.fi> نوشته شده است.

06/02/2026 opensc