اضافه کردن دستی و استاتیک یک لایبراری به یک فایل اجرایی و صدا زدن یک تابع از آن

No Comments

توجه: این آموزش برای کسانی است که کمی با دستکاری فایل ها در سطح اسمبلی آشنایی دارند و صرفا یک چک لیست برای انجام بی نقص کار لازم دارند.

برنامه های لازم عبارتند از OllyDBG و Impreb که اولی به راحتی دانلود می شود و دومی هم در انتهای این پست موجود است.

1. ابتدا به دنبال جای خالی برای وارد کردن کدمان می گردیم. یک محل مانند این که با 00 پرشده مناسب است:

image
آدرس محل مورد نظر را یادداشت می کنیم مثلا در تصویر بالا 005D6830
دقت کنید که به تعدادی جای خالی قبل از شروع کدمان احتیاج داریم به همین خاطر من 005D6830 را انتخاب کردم در حالی که بالاتر هم جا بود.

2. بازگشت به نقطه شروع با کلید * و کپی کردن تعدادی از خطهای ابتدای برنامه برای مقایسه با بعد از تغییر:

image
اگر دقت کنید بعضی از دستورات آنچه که نشان داده می شود دستور واقعی نیست. مثلا در اینجا دستور CALL DWORD PTR DS:[<&KERNEL32.GetCommandLineA>] نمایشی از دستور واقعی CALL DWORD PTR DS:[5D7210] است. اگر به دستوری شک کردید که دستور واقعی است یا نمایشی کافی است روی آن دبل کلیک کنید. آنچه که در پنجره نمایش داده می شود واقعی است:

image
چند خط از دستورات (واقعی) از ابتدای برنامه را نگهدارید برای مقایسه با بعد از تغییرات:

image

3. دستور اول برنامه باید با پرش به شروع نقطه خالی کد ما عوض شود. روی آن دبل کلیک کنید، دستور پرش را تایپ کنید و Assemble را بزنید:

image

4. دقت کنید چندتا از دستورات بعدی هم حذف می شوند (رنگ قرمز):

image
با مقایسه با جایی که دستورات را کپی کرده بودید، دستورات حذف شده را پیدا کنید و فقط آنها را باقی بگذارید:

image

5. روی خط اول برنامه رفته Enter را بزنید تا به آدرس محل خالی منتقل شوید. کمی بالاتر از محل شروع کدمان چند خط را انتخاب کرده و آنرا Binery Edit کنید:

image
در پنجره جدید اسم دی ال ال را را بادقت و رعایت کوچیک بزرگی حروف وارد کنید:

image image
OK را بزنید. چند خط پایین تر همین کار را برای اسم تابع انجام می دهیم:

image
با زدن Ctrl+A کد دوباره آنالیز می شود و رشته ها مشخص می شود:

image

6. به آدرس 005D6830 می رویم. باید نام دی ال ال مان را به دستور لود کردن دی ال ال رد کنیم. دبل کلیک کنید و وارد کنید:

image
که 005D6810 آدرس رشته نام دی ال ال است. اسمبل کنید:

image

7. حالا باید آدرس دینامیک تابع LoadLibrary را پیدا کنیم. برنامه ImpReb.exe را اجرا کنید:

image
و فایل دستکاری شونده را روی محل مخصوص بکشید:

image
Load Sections را بزنید:

image
Asm را بزنید و در پنجره جدید LoadLibraryA را پیدا کنید:

image
دستور کنار آن (CALL [5D7288]) را کپی کنید.

8. در Olly در خط بعدی برنامه دبل کلیک کنید و دستور بالا را وارد کنید و اسمبل کنید:

image

9. این دستورات را در خطوط بعدی وارد کنید:

MOV EBX,EAX
CMP EBX,20
JB 004F6EB2

دستور آخر کد خروج است که تازمانی که باید به دنبال آدرس ExitProcess در impreb بگردید و آن را وارد کنید.

10. در خط بعدی باید آدرس رشته نام تابع را وارد کنید:

image

image
در خط بعد هم این دستور را اسمبل کنید:

PUSH EBX

11. برای خط بعد باید دستور تابع GetProcAddress را از برنامه impreb در بیاورید:

image
و آن را در خط بعدی اسمبل کنید

12. ادامه کار با اسمبل کردن این دستورات:

MOV EDI,EAX
MOV ESI,EDI
TEST EDI,EDI

13. در این خط باید یک پرش به چند خط جلوتر را بزنید. اگر همه دستورات را پشت سرهم وارد کنید این پرش باید به دقیقا 13 خط جلوتر باشد(مثلا شماره این خط 005D6858 است به علاوه D یعنی 13 در مبنای هگز می شود 005D6865). و گرنه فعلا آدرس را وارد کنید تا بعد درستش کنید فقط آدرس این خط را یادتان باشد:

JE SHORT 005D6865

آدرسی که وارد می کنید مال همان نزدیکی ها باشد تا بعدا مشکل پیدا نکنید.

14. این دو دستور در خطهای بعدی:

CALL ESI
TEST AL,AL

15. باز هم یک پرش داخلی داریم به آدرسی که بعدا توضیح می دم فعلا دستور را با همین آدرس وارد کنید (دقت کنید که حداقل آدرس دستور بزرگتر از خود آدرس محل باشد و مال همان نزدیکی ها هم باشد و خیلی فاصله نداشته باشد):

JNZ SHORT 005D6886

16. در خط بعدی پرش به همان دستور خروجی که در بند 9 داشتیم (دقت: آدرس همان است ولی دستور فرق می کند):

JMP 004F6EB2

17. خط بعدی:

PUSH EBX

آدرس این خط همان جایی است که در بند 13 باید به آن می پریدید. پس اگر آدرس را آنموقع الکی وارد کردید برگردید و تصحیحش کنید.

18. در خط بعدی هم از impreb دستور FreeLibrary را وارد کنید:

image

19. کار تمام است. یک دید کلی از تمام آنچه تا الان انجام دادید:

image

20. حالا باید کد هایی که از اول برنامه حذف کردیم را هم اضافه کنیم و یک پرش به اول برنامه. من برای اینکه اگر بعدا مشکلی پیش بیاد و بخواهم کد ها را عوض کنم و در این صورت جا داشته باشم چند تا NOP بعد از همه دستورات اضافه کردم:

image

image

21. کدهای ابتدای برنامه را که ذخیره کرده بودید به ترتیب وارد کنید:

image

image

22. آدرس دستور SUB ESP,44 در بند بالا همان آدرسی است که باید در بند 15 به آن می پریدید. پس برگردید و آدرس را درست کنید.

23. حالا باید یک پرش اضافه کنید به ادامه برنامه در اول. با کلید * برید اول برنامه و آدرس جایی رو که برنامه ادامه پیدا می کنه (یعنی بعد از NOP ها) پیدا کنید:

image
با انتخاب خط اول و اینتر روی آن برگردید به جایی که کدما بود و اضافه کنید:

JMP 004F6E3A

24. بعد از زدن Ctrl+A باید نمای کلی برنامه این باشد:

image

25. باید همه تغییرات را ذخیره کنید:

image

image

image

image

image 

26. فایل دی ال ال را کنار برنامه یا در یکی از مسیرهای تعریف شده یا در فولدر system ویندوز بگزارید و برنامه را اجرا کنید.

Duke Nukem 3D قدیمی!

No Comments

تک و توک بازی هایی هستند که خاطره می شن، یک عمر زنده می مونن و با هر بار برگشت به اونها کلی خاطره زنده می شه. بازی هایی مثل Commandos، Warcraft و . . . از این دست بازی ها هستند. یکی از این بازی ها که شاید برای شما هم کلی خاطرات به همراه داشته باشه بازی قدیمی Duke Nukem 3D است.

duke0001

این بازی که در اصل یک بازی Dos 6.22 است که تا زمان حضور Windows 98 هم دوام آورد. اما با پایان یافتن عمر این نسخه از سیستم عامل ویندوز عملا عمر این بازی هم به پایان آمد چون به دلیل معماری خاص آن، دیگر توانایی اجرای تحت نسخه های بالاتر را نداشت.

اما این بازی طرفداران مصممی داشت. به این ترتیب که جمعی از طرفداران بازی خودشان دست به کار نوشتن یک نسخه جدید از بازی شدند که قابلیت اجرا تحت ویندوز xp و بالاتر را هم داشته باشد JFDuke البته اولین تلاش به ثمر نشسته برای این منظور بود. و البته بعد از اینکه این مشکل حل شد برخی دیگر هم به فکر بازسازی گرافیک قدیمی و نسبتا ساده بازی شدند. به این ترتیب نسخه HD این بازی قدیمی هم به دنیا آمد. این تلاش ها البته همچنان ادامه دارد.

شما هم اگر می خواهید یک بار دیگر به آن زمانها برگردید معطل نکنید. برای اجرای بازی با گرافیک اصلی آن به موارد زیر نیاز دارید:

  1. اصل بازی (هم نسخه عادی و هم نسخه Atomic Edition قابل استفاده است)
  2. یک اجرا کننده (پلتفرم) جدید

مورد اول را در صورت نداشتن با حدود 14 الی 35 مگابایت دانلود (از شبکه های تورنت و یا ایمیول، البته به صورت غیر قانونی) می توانید بدست بیاورید. البته یک نسخه کامل از بازی را هم می توانید به قیمت 5$ بخرید.

برای مورد دوم هم دو نسخه را می شناسم که هردو رایگان هستند. یکی همان JFDuke است و دیگری EDuke32 که من این دومی را بیشتر توصیه می کنم زیرا به شما امکان استفاده از موتور OpenGL را هم می دهد. یعنی شما با استفاده از آن، از جدیدترین قابلیت های کارتهای گرافیک روز استفاده خواهید کرد. و به نظر من این هیجان انگیز ترین بخش کار است که یک بازی قدیمی را با مدرنترین امکانات اجرا کنید!

اگر مایل به اجرای HD این بازی باشید باید حدود 430 مگابایت هم دانلود کنید که این بخش هم رایگان است. برای این کار باید به آدرس http://hrp.duke4.net/ بروید و آخرین مجموعه آماده شده را دانلود کنید. در صورتی که از این پک HD استفاده کنید فقط به فایل DUKE3D.GRP از بازی قبل نیاز دارید.

اجرای این بازی قدیمی بعد از این همه سال برای من که خیلی هیجان انگیز بود امیدوارم شما هم لذت استفاده از آن را برید.

ساخت چند سایت با کد بیس مشترک به کمک Drupal

2 Comments

اگر درست متوجه تیتری که در بالا زدم نشدید زیاد تعجب نکنید چون انتقال مطلبی که مورد نظر بنده است حتی با توضیحات هم کمی مشکل است چه برسد در یک تیتر. درضمن یکی دو پاراگراف اول این مطلب به منظور بیان پس زمینه تکنیکی مطلب است و چنانچه متوجه مطالب بیان شده در آنها نمی شوید حتما به این معنی نیست که نمی توانید از این مطلب استفاده کنید. به سراغ بخش های اصلی و عملی کار بروید.

اگر شما مالک چند سایت هستید که همه آنها از یک کد استفاده می کنند (مثلا همه از یک نوع CMS) اما تحت آدرس های مختلف عملکرد مختلفی دارند، حتما با درد آور ترین بخش قضیه یعنی آپدیت کردن چندین سایت آشنا هستید. ایده آل ترین حالت در این وضعیت این است که همه این سایت ها (حتی با آدرس دامین های متفاوت) از یک کد استفاده کنند. در این صورت شما می توانید به راحتی با آپدیت کردن یک کد تمام سایت های خود را به روز کنید.

در برنامه های وب که تحت وب سرور قدرتمند Apache اجرا می شوند به راحتی و با استفاده از ماژول mod_rewrite قادر خواهند بود آدرس ها و حتی دامین های متفاوت را تحت مدیریت یک کد قرار دهند. چیزی که احتمالا در برخی سایت ها دیده اید. به عنوان مشهور ترین آنها می توانید به آدرس دهی سایت wikipedia.org دقت کنید. به عنوان مثال:

http://wikipedia.org/drupal

که یک نمونه بسیار ساده از استفاده از همان ماژول مذکور می باشد. در مورد مدیریت چند سایت با یک کدبیس، سیستم کمی پیچیده تر است که پرداختن به آن از حوصله این مطلب خارج است. اما قصد بنده معرفی این قابلیت در یکی از جذاب ترین CMS های موجود یعنی Drupal است.

 

به دنبال چه هستیم

پیش از شروع مطلب به عنوان نمونه پیاده سازی شده به این آدرس ها دقت کنید:

http://mohamnag.com

http://en.khone.ir

http://pmc.khone.ir

http://wmpauker.khone.ir

و البته که خود http://mohamnag.com؛ تمام این سایتها تنها و تنها از یک کد بیس و یک دیتابیس استفاده می کنند و البته که عملکرد های متفاوتی را روی بستر مشترک ارائه می دهند. برای آپدیت کد استفاده شده در هر کدام تنها کافی است یکی از آنها به روز شود! البته این شیوه می تواند نه تنها برای زیر دامنه های متفاوت که حتی برای دو دامنه متفاوت نیز به کار گرفته شود.

 

شروع کار

برای شروع شما به موارد زیر احتیاج دارید:

1. هاست لینوکسی (متاسفانه Apache خیلی کم روی هاست های ویندوز ارائه می شود)

2. کد Drupal (قابل دریافت رایگان در http://drupal.org)

3. آشنایی قبلی با هر دو مورد بالا

برای شروع کافی است تا دروپال را در یک شاخه از هاستتان (مثلا در زیر شاخه public_html/drupal که از طریق وب به آدرس http://mohamnag.com/drupal قابل دسترسی خواهد بود) کپی کنید و مراحل نصب آن را طی کنید. پس از آنکه دروپال در آدرس هاست شما (مثلا http://mohamnag.com/drupal) کاملا فعال شد، به کنترل پنل هاستتان مراجعه کنید و دامین ها یا زیر دامین های جدیدی را ایجاد کنید که به شاخه کد دروپال (اینجا public_html/drupal) اشاره می کنند. به عنوان مثال در کنترل پنل cPanel با تم X3 در بخش اضافه کردن زیر دامنه از شما آدرسی که زیر دامنه به آن اشاره می کند باید برابر public_html/drupal باشد. برای دامین های متفاوت باید از Parked Domain استفاده کنید و آن را به همان شاخه مذکور اشاره دهید.

clip_image002

clip_image004

در مرحله بعد باید به دروپال بگویید که چگونه آدرس های مذکور را مدیریت کند. برای این منظور به ازای هر دامنه یا زیر دامنه ایی که مدیریت آن را به دروپال سپرده ایید باید یک شاخه جدید در شاخه sites دروپال ایجاد کنید. مثلا من برای مدیریت 4 زیر دامنه ذکر شده در بالا این 4 زیر شاخه را ساختم:

public_html/drupal/sites/fa.khone.ir

public_html/drupal/sites/en.khone.ir

public_html/drupal/sites/pmc.khone.ir

public_html/drupal/sites/wmpuaker.khone.ir

هر یک از این زیر شاخه ها می تواند شامل فایلهایی خاص همان سایت باشد. اما دو مورد زیر حتما باید به هر زیر شاخه اضافه شود:

فایل Settings.php

شاخه files

هر دوی این موارد را می توانید از زیر شاخه public_html/drupal/sites/default به شاخه های مذکور کپی کنید. تمام آنچه که به رفتار متمایز هر کدام از زیر دامنه هایتان مربوط می شود در فایل settings.php تعیین می شود. اما اولیه ترین آنها دیتابیس است.

ابتدا نگاهی به فایل settings.php بیندازید و به این دو خط دقت کنید:

$db_url = ‘mysql://user:password@localhost/database_name’;

$db_prefix = ‘fa_’;

همان طور که حدس می زنید در خط اول دیتابیس و در خط دوم پیشوند جدول های دیتابیس تعیین شده اند. شما در مورد سایتهایتان می توانید دو گزینه را انتخاب کنید. اول اینکه هر کدام دیتابیس مختص به خود را داشته باشند دوم اینکه همگی از یک دیتابیس مشترک اما با پیشوند های متفاوتی برای جدولهایشان استفاده کنند.

انتخاب یکی از این دو راه حل به مسائل زیادی برمی گردد که بنده اصلا وارد آنها نمی شوم، اما به شخصه با توجه به شرایطم راه دوم را انتخاب کردم. یعنی همه 4 فایل settings.php در 4 زیر شاخه بالا دارای خط دیتابیس مشابه هستند اما متغیر $db_prefix متفاوتی برایشان تعریف کردم:

public_html/drupal/sites/fa.khone.ir/settings.php
—-
$db_prefix = ‘fa_’;

public_html/drupal/sites/en.khone.ir/settings.php
—-
$db_prefix = ‘en_’;

public_html/drupal/sites/pmc.khone.ir/settings.php
—-
$db_prefix = ‘pmc_’;

public_html/drupal/sites/wmpauker.khone.ir/settings.php
—-
$db_prefix = ‘ wmpauker _’;

در دیتابیس هم جدول های اولیه را با این پسوند های جدید کپی کردم. البته ساده ترین راه این است که در همان آدرس اولیه (http://mohamnag.com/drupal) 4 بار اینستالر را اجرا کنید و هر بار پارامتر های مطلوبتان (اطلاعات دیتابیس، جدول و . . .) را وارد کنید و هر بار با تمام شدن نصب فایل settings.php را از شاخه public_html/drupal/sites/default به زیر شاخه مورد نظرتان ( مثلا public_html/drupal/ sites/pmc.khone.ir) منتقل کنید. به این صورت نیازی به دستکاری مستقیم دیتابیس و یا فایل settings.php ندارید.

 

خوب کار تمام است!

شاید باور نکنید اما اگر زمان کافی برای انتشار اطلاعات DNS دامین ها و زیر دامین هایتان گذشته باشد، الان با وارد کردن هر کدام از آنها صفحه اول دروپال را مشاهده می کنید. فقط به عنوان راهنمایی باید بگویم که در شاخه public_html/drupal/sites دو زیر شاخه پیش فرض وجود دارد، یکی default که همان طور که از اسمش معلوم است چنانچه آدرس سایت مرتبط با کد به هیچ شاخه دیگری مربوط نباشد به آن ارجاع داده می شود. و دیگری all است که فایلهای (تم ها، ماژول ها و . .. ) مشترک بین سایتها را می توانید در آن نگهداری کنید.

 

کمی خلاق باشید

در حقیقت آنچه گفته شد نمونه ساده شده ایی از ارجاع چند سایت به یک کدبیس دروپال بود. دروپال به شما این قدرت را می دهد که زیر دامنه های مختلف را نه به سایتهای متفاوت بلکه به ترجمه های مختلف از یک سایت ارجاع دهید. دروپال به شما این امکان را می دهد که برخی از جدول هایتان را بین سایتها به اشتراک بگذارید. فقط کافی است فکر کنید که این چه قابلیت هایی را در اختیار شما می گذارد (اشتراک کاربرها، اشتراک اطلاعات و . . .). از این به بعدش را خودتان باید بپیمایید!

دیگه خبری نیست!

No Comments

با سلام خدمت همه دوستانی که همچنان به این بخش مراجعه می کنند،
با ید خدمت شما عرض کنم که به دلایل متعددی بنده دیگر هیچگونه تمایلی به ادامه مطلب نوشتن در بخش سربازی را ندارم و الان هم چند ماهی است که هرچی کامنت در این بخش گذاشته میشه رو فقط پاک می کنم. لطفا مثل قسمت های دیگه که تا ما حرف زدیم هزار جور تفسیر و کلمات نه چندان مبارک روانه شد برخورد نکنید. من خدمتم در کمتر از یک ماه تموم میشه و بعد از اون هم دیگه غیر از کارت سربازی راجع به هیچ مطلبی در این مورد نمی خوام حتی فکر کنم.

پس لطفا دیگه در این قسمت نظر ندید.

آموزه های خدمت سربازی

16 Comments

این مطلب رو اینجا می نویسم چون به این نتیجه رسیدم برخلاف همه دروغ ها و سیاه نمایی هایی که برای عوام در رسانه های جمعی پخش می شه، در بین مسئولین این مملکت گوش شنوا و دلسوزی نیست و منافع شخصی چنان مدعیان مردم سالاری رو کور و کر کرده که اگر ما خودمان برای خودمان کاری نکنیم کسی به فکر ما نخواهد بود.
مدتهاست (از اواسط دوره آموزشی سربازی و حتی قبل از آن) که با خودم فکر می کنم این سربازی به اصطلاح مقدس حقیقتا چه فایده هایی دارد و بیش از همه چه کسانی از آن استفاده می کنند. حالا فکر می کنم با ذهن بازتری می تونم به این سوال و دهها سوال دیگه که در جانب این قضیه برام پیش اومده جواب بدم.
مطلب به صورت سوال و جواب نوشته می شه چون خیلی منفصله.

هدف از سربازی چیست؟ هرچند که این پرسش اینقدر سوال مپرسی است که هرگز علنی روی آن بحث نشده اما در رسانه ها خواهید شنید که برای آماده نگهداشتن کشور برای دفاع، عمده ترین جوابی است که به این سوال داده می شود.
اما واقعیت چیه؟ آیا آموزش نظامی دادن به جوانها و تجربه کار نظامی دادن به آنها در طول دو دوره 3 ماه که مثلا در دو تابستان دوره دبیرستان برگزار شود و مانع ادامه تحصیل، تشکیل خانواده، پیدا کردن شغل و . . . جوانها نشود امکان پذیر نیست؟ چرا باید 20 ماه مداوم از عمر نیروی تازه فارق التحصیل دبیرستانها و دانشگاهها صرف انجام کارهای نامربوط به رشته تحصیلی و تخصص جوانها بشود؟
فرمانده تاکتیک ما در دوره آموزشی می گفت ما نمی توانیم مخارج ارتش حرفه ایی را تحمل کنیم لذا باید از نیروی جوان مملکت به جای این سرمایه نداشته استفاده کنیم! آیا نباید به برنامه ریزان مملکتی به خاطر این حماقت احسنت گفت وقتی که سرمایه عظیم جوانان تحصیل کرده و نکرده این مملکت را به قیمت ماهی 20-30 هزار تومان به جای کارگر ساختمانی و حمل بار و نامه رسان و . . . حدر می دهند و اسم آن را گذاشته اند ارتش غیر حرفه ای؟ ارتشی که در آن کادرها و رسمی ها حقوق مفت می گیرند و سربازها کارهای این عده را به قیمت طلف شدن عمرشان انجام می دهند؟
جمع بندی بنده از هدف خدمت مقدس(!!) سربازی اینه که عده ایی برای اینکه از زیر بار انجام کارهایشان در بروند و کارها را به دوش دیگران بندازند و خود را راحت کنند این تقدسات من در آوردی را ساخته اند و گرنه این سربازی نه کسی را آماده دفاع می کند و نه به آمادگی دفاعی کشور می افزاید بلکه خیلی زود با تنفر و انزجاری که رفتارهای زشت و غیر انسانی (و نه حتی غیر اسلامی!) کسانی که در خدمت نوکری آنها را خواهید کرد، همان یک ذره عرق ملی و احساس اجباری که به دفاع از مملکت پیدا خواهید کرد هم از بین خواهد رفت. به قول یکی از هم دوره ایی ها در جنگ آینده بنده حاضر نیستم حتی سگم را برای دفاع به جبهه بفرستم. (تعجب نکنید و جا نخورید، من هم آن اول که این جمله را شنیدم پیش خودم به طرف بد و بیراه گفتم، اما الان دقیقا احساس مشابه و مشترکی دارم)

البته یکی دیگر از کارکردهای خدمت مقدس سربازی پی بردن به واقعیتِ اسلامی است که عده ایی از آن دم می زنند، هرچند بنده از خیلی جاهای دیگر شک هایی کرده بودم اما در خدمت مقدس سربازی این شک ها به یقیقن تبدیل شده. در سربازی شما کسانی را خواهید دید که وقتی می خواهند دو تن برنج را خالی کنند یا وسایل چهار کانکس 6 اطاقه را رایگان جابجا کنند، از خدا و پیغمبر و کار برای خدا دم می زنند؛ اما اگر خدای ناکرده یادتان برود که فلاکس چاییشان را پرکنید بدون آنکه ذره ایی به یاد رحما بینهم باشند شما را ممنوع الخروج یا حتی بازداشت میکنند.
البته سخاوتمندان در این مورد خیلی راحت می گویند به بازرسی مراجعه کنید، البته که بازرسی تذکری هم به طرف می دهد اما در اولین فرصت تلافی آن سرشما در خواهد آمد! واقعیت این است که سربازی امروز نوعی بردگی بیش نیست آن هم به اسم خیلی چیزهای با ارزش، که ارزششان در حد تمتعات شخصی این و آن پایین آورده شده است.

روزی روزگاری در این مملکت بنیه ی دفاعی وجود داشت که فقط و فقط رفتار انسانی و اسلامی فرماندهان (مثل بالاتر ندانستن خود، احترام به زیر دست، رعایت حق الناس، برده ندانستن سرباز و . . .) بود و اکنون دیگر چیزی از آن باقی نمانده است و جای آن را کپی برداری از وحشی گری های نظامیان خارجی و حکمرانی قوانین غیر اسلامی و حتی ضد اسلامی گرفته است. پس برنامه ریزان مطمئن باشند که خدمت سربازی نه تنها به بنیه دفاعی کشور کمک نکرده که تیشه به ریشه آن هم زده.

به هر حال خدمت مقدس سربازی برای بنده فرصت بسیار خوبی بود تا شک هایم به یقین تبدیل شود که باید هرچه زودتر از این خرابه رخت بست.

Older Entries