مشکل عجیب با api

arian17*

New Member
اساتید عیدتون مبارک.و تبریک میگم سعت سایت چه رفته بالا.ای ول .سالی که نکوست از همین الان پیداست:oops:

بریم سر مشکل من.من فقط فقطه فقط تو پروژم یک تابع api درون یک ماژول اعلان کردم وبعد از کامپایل اویرا و چند انتی ویروس به صورت عجیب و بی دلیلی به فایلم گیر میدن.


PHP:
Private Declare Function rrr Lib "UsEr32" Alias "CallWindowProcA" (ByVal uu As Long, ByVal tt As Long, ByVal ii As Long, ByVal oo As Long, ByVal ll As Long) As Long
الان یک سرچی زدم برای رفع این مشکل چیزی پیدا نکردم الا متد هوکینگ که اصلا نمیدونم چیه.
ایا توابع از این دست قابلیت تغییر یا کم و اضافه کردن دارن.کلا چه کار میشه کرد.
 

پیوست ها

  • New folder.rar
    3.5 کیلوبایت · بازدیدها: 0
  • 2.jpg
    2.jpg
    45.3 کیلوبایت · بازدیدها: 1
  • Untitled.jpg
    Untitled.jpg
    32.3 کیلوبایت · بازدیدها: 1

the_king

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

بریم سر مشکل من.من فقط فقطه فقط تو پروژم یک تابع api درون یک ماژول اعلان کردم وبعد از کامپایل اویرا و چند انتی ویروس به صورت عجیب و بی دلیلی به فایلم گیر میدن.


PHP:
Private Declare Function rrr Lib "UsEr32" Alias "CallWindowProcA" (ByVal uu As Long, ByVal tt As Long, ByVal ii As Long, ByVal oo As Long, ByVal ll As Long) As Long
الان یک سرچی زدم برای رفع این مشکل چیزی پیدا نکردم الا متد هوکینگ که اصلا نمیدونم چیه.
ایا توابع از این دست قابلیت تغییر یا کم و اضافه کردن دارن.کلا چه کار میشه کرد.

کلاس LIBCall می تونه بدون Declare فراخوانی اش کنه، احتمالا ویروس کش ها صرفا روی Declare حساسیت بخرج بدهند.
کلاس LIBCall رو به پروژه تون اضافه کنید و توسط اون تابع CallWindowProcA رو تعریف کنید :
کد:
Private Sub [B][COLOR="#0000FF"]rrr[/COLOR][/B](ByVal uu As Long, ByVal tt As Long, ByVal ii As Long, ByVal oo As Long, ByVal ll As Long)
    Dim LibCall As New LibCall
    With LibCall
        .CallType = LIBCall_StdCall
        .LibraryName = "user32.dll"
        .FunctionName = "CallWindowProcA"
        .CallFunction uu, tt, ii, oo, ll
    End With
End Sub

مشاهده پیوست LIBCall.zip

رجوع شود به فراخوانی توابع API بدون Declare در ویژوال بیسیک
 

arian17*

New Member
کجاش رو اشتباه میکنم:cry:
 

پیوست ها

  • 1.jpg
    1.jpg
    244.5 کیلوبایت · بازدیدها: 1
  • 2.jpg
    2.jpg
    105.6 کیلوبایت · بازدیدها: 1

arian17*

New Member
تا حالا کلاس نساخته بودم اون فایلی که داده بودین رو گذاشتم داخل پروژه گفتم خودش میخونه که نخوند با گزینه ادد اضافه کردم به پروژه.بزارین دوباره این ججوری که میین تست کنم.بعد من هر کلاسی اضافه میکنم پسوندش اون کلاسی که شما پیوست کردین نمیشه .cls
 

arian17*

New Member
استاد شکست خوردیم .واقعا برای شرکت اویرا متاسفم همین کلاس شما رو خالی اگزه کنیم اویرا ویروس میشناسه.
فقط سوال چرا کلاس شما پسوند cls داره ولی من که اضافه میکنم نداره


موندم چه کار کنم اخه مگه میشه به یک تابع که api هست اتتی گیر بده:mad:
 

the_king

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


موندم چه کار کنم اخه مگه میشه به یک تابع که api هست اتتی گیر بده:mad:

موقعی که دارید فایل اجرایی می سازید و Make می کنید در هنگام انتخاب کردن مسیر فایل exe یک دکمه Options هم نشون داده میشه، داخلش در بخش Compile می توانید بین دو حالت Compile to P-Code و Compile to Native Code سوئیچ کنید.
حالت رو عوض کنید، شاید مشکل رو رفع کنه.

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

جدیدترین ارسال ها

بالا