نمایش نتایج 1 تا 14 از 14

نام تاپیک: نا بلد، چه بکند؟

  1. #1
    کاربر دائمی آواتار hasanain
    تاریخ عضویت
    مهر 1384
    محل زندگی
    بازار تهران
    پست
    149

    Unhappy نا بلد، چه بکند؟

    از دوستانی که وارد بدین مسائل هستند، سؤال مشاوره ای دارم: برنامه نویسی که از کرک و دیباگ و ... به صورت حرفه ای سر در نمی آورد؛ جهت تأمین امنیت برنامه اش چه باید بکند؟ اگر در این زمینه مؤسسه ای هست یا سایت یا ... لطفاً معرفی بفرمایید.

    چرا که صرف استفاده از قفلهای موجود، یقیناً کافی نیست.

    بنده خودم همین مشکل را دارم.

    با تشکر

  2. #2
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: نا بلد، چه بکند؟

    کتاب "Crack و تکنیک های نفوذ به نرم افزار" رو از انتشارات ناقوس تهیه کن به دردت می خوره

  3. #3
    کاربر دائمی آواتار hasanain
    تاریخ عضویت
    مهر 1384
    محل زندگی
    بازار تهران
    پست
    149

    نقل قول: نا بلد، چه بکند؟

    ضمن تشکر از نظر جناب HadiDelphi
    آیــــــــا:
    با صرف مطالعه کتاب مذکور، میتوان امنیت برنامه را به تنهایی و بدون کمک گرفتن از کرکرها تأمین کرد؟
    من پس از مطالعه آن کتاب تازه میرسم به ابتدای راه. حال آنکه هم اکنون میخواهم امنیت برنامه آماده فروشم را تأمین کنم!

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: نا بلد، چه بکند؟

    مسلما" انتظاری که از مطالعه کتاب فوق دارید برآورده نخواهد شد , چراکه کتاب فوق در واقع الفبای کرکینگ نرم افزار است , بعد از مطالعه کتاب فوق الذکر حتما" بایستی اقدام به کرک نمودن یک سری از برنامه های موسوم به Crackme نمائید تا تجربه ابتدائی در امر کرک را کسب نمائید پس از آن و با بیشتر شدن تجربه شما در نهایت پی به شیوهایی که می تواند باعث افزایش امنیت نرم افزار شما شود خواهید برد.
    لازم به ذکر است که شما با اعلام نوع نرم افزارخود اعم از حسابداری , مال , سیستمی بودن آن و زبان برنامه نویسی مورد استفاده مسلما" از راهنمائی های دوستان استفاده خواهید نمود
    ( به کلام ساده تر : نوع نرم افزارت رو بگو تا شاید بتونیم کمکت کنیم که چی کار کنی که برنامت به این زودی ها کرک نشه :-) .)

  5. #5

    نقل قول: نا بلد، چه بکند؟

    شرکت های مشاوره و تامین امنیت نرم افزار وجود دارند.
    بیشتر توضیح بدید ، تا اگه نیاز شد ، یه شرکت بهتون معرفی کنم

  6. #6
    کاربر دائمی آواتار hasanain
    تاریخ عضویت
    مهر 1384
    محل زندگی
    بازار تهران
    پست
    149

    نقل قول: نا بلد، چه بکند؟

    با تشکر از جناب Nima NT
    برنامه ام: حسابداری، زبان VB6، قفل سخت افزاری Sentinel از شرکت SafeNet

      Components                    36
    Modules 15
    Classes 2
    Forms 11
    User Controls 7

    Code Lines 70,403
    Comment Lines 6,850
    Blank Lines 4,872

    Total Code Lines 82,125


    جناب mehdi311ggg عزیز. نمیدانم چه توضیحی مد نظرتان هست. اتفاقاً بیشتر ذهنیتم هم روی چنین شرکتهایی بود که چه خوب است اینجا یا حتی در قالب تاپیکی مجزا معرفی شوند.

  7. #7

    نقل قول: نا بلد، چه بکند؟

    اولا استفاده از قفل كه براش تا يه جايي جواب ميده
    به نظر من بهترين روش جهت ارتقاي امنيت برنامه استفاده از ماجول ها و كد هايي هست كه امنيت اونها تست شده و يا اين كه حداقل در سطح بالايي از امنيت قرار دارن مثل استفاده از .net در توليد نرم افزار.

    ضمنا كپي رايت يه فرهنگ هستش...قفل ها هر چه قدر هم كه ايمن باشد سرانجام روزي شكسته مي شوند

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: نا بلد، چه بکند؟

    با سلامی دوباره , قفل سخت افزاری که ازش استفاده کردی تا 50 درصد کار کرکر رو سخت می کنه ولی این همه چیز نیست , به نظر من در کنار اون حتما" از یه سیستم قفل تلفنی هم استفاده کن که برنامت در اجرا نیاز به اکتیو شدن داشته باشه , خوب حالا چند تا حقه برات معرفی می کنم که شماید به دردت بخوره :
    اول اینکه بیا قفل رو تو چند قسمت چک کن , مثلا" من برنامه شما رو خریدم و ثبتش هم کردم , حالا می خوام برنامه رو اجرا کنم بیا یه بار تو اجرای برنامه , یه بار تو باز کردن حساب مشتری و ..... قفل رو جداگانه چک کن اگه می گم جداگانه به این خاطره که همه چک کردن ها رو به یک تابع پاس نده , توابع چک کردن رو از اول تو هر قسمت بنویس , یه شیوه جالبی هم که وجود داره اینه که بیای تو اجرای برنامه تاریخ فعلی سیستم رو یه جایی ذخیره کنی ( مثلا" به صورت کد شده تو رجیستری ویندوز ) , تو برنامت تعریف کن که با گذشت مثلا" 30 روز از تاریخ درج شده تو رجیستری یه بار دیگه قفل نرم افزاری با متدی جدید فعال بشه تا کاربر مجبور بشه دوباره کد فعالسازی دریافت کنه ( یادت باشه کرکر نباید از این مطلب باخبر بشه ! ) با این کار اگه برنامت کرک هم بشه توی بازار استفاده نمیشه , چون اول از همه کرکی که برنامه رو توزیع میکنه با این اشتباده زیر سوال می ره بعدشم این که کسی به برنامه کرک شده اعتماد نمی کنه , روش جالب تری هم که وجود داره استفاده از کنترل های Runtime هست , مثلا" بیا برای چک کردن قفل در مدت زمانی که برنامت در حال اجرا هست به صورت Runtime تایمر ایجاد کن و مسئولش کن که قفل رو چک کنه , تا مبادا برنامه با کد فعالسازی غیر معتبر لود شده باشه , در ضمن برای جلوگیری از Keygen شدن برنامت حتما" از الگوریتم RSA برای تولید کد فعالسازی استفاده کن , آخر سر هم از یه پروتکتور خوب استفاده کن و به خدا توکل کن.
    اگه توضیحاتم نامفهوم بود بگین بیشتر تر توضیح بدم.

  9. #9
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298

    نقل قول: نا بلد، چه بکند؟

    افزوده بر مطالب ذكر شده :
    چك CRC در حالت RunTime از جافظه لود شده در RAM بسيار مفيد است .

  10. #10
    کاربر دائمی آواتار hasanain
    تاریخ عضویت
    مهر 1384
    محل زندگی
    بازار تهران
    پست
    149

    پروتکتور/RSA/CRC

    نقل قول نوشته شده توسط Nima NT مشاهده تاپیک
    در ضمن برای جلوگیری از Keygen شدن برنامت حتما" از الگوریتم RSA برای تولید کد فعالسازی استفاده کن , آخر سر هم از یه پروتکتور خوب استفاده کن
    اولاً یک دنیا ممنون از شما و جناب دنیای دلفی که حوصله کردین و جواب دادین.

    ممنون میشم که یه پروتکتور خوب معرفی بفرمایین. من خودم الآن از روش Shell که همراه با قفل سخت افزاری عرضه میشود، استفاده کردم با 5 لایه. و فایلهای دیتابیس را هم با استفاده از همین روش رمزنگاری کردم تا فقط با برنامه اجرایی خودم کار کند. اگر بخواهم از پروتکتور استفاده کنم آیا باید روش Shell رو بیخیال بشم؟

    و دیگر اینکه از کجا دو مطلب RSA و CRC را یاد بگیرم تا به کار ببندم. آیا با مطالعه آن کتاب انشارات ناقوس، حل میشه؟

    باز هم ممنون

  11. #11
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: نا بلد، چه بکند؟

    در مورد دو مطلب فوق هم میتونی تو همین سایت دنبالش بگردی هم تو گوگل , سراغ کتاب نرو توش در این مورد چیزی نیست , مطمئن باش مطالب زیادی گیر میاری.
    Search کن.

  12. #12
    کاربر دائمی آواتار hasanain
    تاریخ عضویت
    مهر 1384
    محل زندگی
    بازار تهران
    پست
    149

    نقل قول: نا بلد، چه بکند؟

    با تشکر از دوستانی که راهنماییهای مفیدی ارائه کردند.
    من درباره CRC خیلی سرچ کردم اما متأسفانه نتوانستم بفهمم که چگونه میتوان به دستش آورد. ممنون میشم اگه راهنمایی بفرمایید. سرچ کردن حرفه ای ها با ما کم تجربه ها خیلی متفاوت است.
    من با vb6 برنامه نوشته ام. اصلاً در این برنامه میتوان از CRC استفاده کرد؟ چگونه؟

  13. #13
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: نا بلد، چه بکند؟


    unit CRC32;
    interface
    procedure CRC32Next(P: Pointer; const ByteCount: Cardinal; var CRC32Value: Cardinal);
    procedure CRC32Full(P: Pointer; const ByteCount: Cardinal; var CRC32Value: Cardinal);
    implementation
    const
    CRC32Table: array[0..255] of Cardinal =
    ($00000000, $77073096, $EE0E612C, $990951BA,
    $076DC419, $706AF48F, $E963A535, $9E6495A3,
    $0EDB8832, $79DCB8A4, $E0D5E91E, $97D2D988,
    $09B64C2B, $7EB17CBD, $E7B82D07, $90BF1D91,
    $1DB71064, $6AB020F2, $F3B97148, $84BE41DE,
    $1ADAD47D, $6DDDE4EB, $F4D4B551, $83D385C7,
    $136C9856, $646BA8C0, $FD62F97A, $8A65C9EC,
    $14015C4F, $63066CD9, $FA0F3D63, $8D080DF5,
    $3B6E20C8, $4C69105E, $D56041E4, $A2677172,
    $3C03E4D1, $4B04D447, $D20D85FD, $A50AB56B,
    $35B5A8FA, $42B2986C, $DBBBC9D6, $ACBCF940,
    $32D86CE3, $45DF5C75, $DCD60DCF, $ABD13D59,
    $26D930AC, $51DE003A, $C8D75180, $BFD06116,
    $21B4F4B5, $56B3C423, $CFBA9599, $B8BDA50F,
    $2802B89E, $5F058808, $C60CD9B2, $B10BE924,
    $2F6F7C87, $58684C11, $C1611DAB, $B6662D3D,
    $76DC4190, $01DB7106, $98D220BC, $EFD5102A,
    $71B18589, $06B6B51F, $9FBFE4A5, $E8B8D433,
    $7807C9A2, $0F00F934, $9609A88E, $E10E9818,
    $7F6A0DBB, $086D3D2D, $91646C97, $E6635C01,
    $6B6B51F4, $1C6C6162, $856530D8, $F262004E,
    $6C0695ED, $1B01A57B, $8208F4C1, $F50FC457,
    $65B0D9C6, $12B7E950, $8BBEB8EA, $FCB9887C,
    $62DD1DDF, $15DA2D49, $8CD37CF3, $FBD44C65,
    $4DB26158, $3AB551CE, $A3BC0074, $D4BB30E2,
    $4ADFA541, $3DD895D7, $A4D1C46D, $D3D6F4FB,
    $4369E96A, $346ED9FC, $AD678846, $DA60B8D0,
    $44042D73, $33031DE5, $AA0A4C5F, $DD0D7CC9,
    $5005713C, $270241AA, $BE0B1010, $C90C2086,
    $5768B525, $206F85B3, $B966D409, $CE61E49F,
    $5EDEF90E, $29D9C998, $B0D09822, $C7D7A8B4,
    $59B33D17, $2EB40D81, $B7BD5C3B, $C0BA6CAD,
    $EDB88320, $9ABFB3B6, $03B6E20C, $74B1D29A,
    $EAD54739, $9DD277AF, $04DB2615, $73DC1683,
    $E3630B12, $94643B84, $0D6D6A3E, $7A6A5AA8,
    $E40ECF0B, $9309FF9D, $0A00AE27, $7D079EB1,
    $F00F9344, $8708A3D2, $1E01F268, $6906C2FE,
    $F762575D, $806567CB, $196C3671, $6E6B06E7,
    $FED41B76, $89D32BE0, $10DA7A5A, $67DD4ACC,
    $F9B9DF6F, $8EBEEFF9, $17B7BE43, $60B08ED5,
    $D6D6A3E8, $A1D1937E, $38D8C2C4, $4FDFF252,
    $D1BB67F1, $A6BC5767, $3FB506DD, $48B2364B,
    $D80D2BDA, $AF0A1B4C, $36034AF6, $41047A60,
    $DF60EFC3, $A867DF55, $316E8EEF, $4669BE79,
    $CB61B38C, $BC66831A, $256FD2A0, $5268E236,
    $CC0C7795, $BB0B4703, $220216B9, $5505262F,
    $C5BA3BBE, $B2BD0B28, $2BB45A92, $5CB36A04,
    $C2D7FFA7, $B5D0CF31, $2CD99E8B, $5BDEAE1D,
    $9B64C2B0, $EC63F226, $756AA39C, $026D930A,
    $9C0906A9, $EB0E363F, $72076785, $05005713,
    $95BF4A82, $E2B87A14, $7BB12BAE, $0CB61B38,
    $92D28E9B, $E5D5BE0D, $7CDCEFB7, $0BDBDF21,
    $86D3D2D4, $F1D4E242, $68DDB3F8, $1FDA836E,
    $81BE16CD, $F6B9265B, $6FB077E1, $18B74777,
    $88085AE6, $FF0F6A70, $66063BCA, $11010B5C,
    $8F659EFF, $F862AE69, $616BFFD3, $166CCF45,
    $A00AE278, $D70DD2EE, $4E048354, $3903B3C2,
    $A7672661, $D06016F7, $4969474D, $3E6E77DB,
    $AED16A4A, $D9D65ADC, $40DF0B66, $37D83BF0,
    $A9BCAE53, $DEBB9EC5, $47B2CF7F, $30B5FFE9,
    $BDBDF21C, $CABAC28A, $53B39330, $24B4A3A6,
    $BAD03605, $CDD70693, $54DE5729, $23D967BF,
    $B3667A2E, $C4614AB8, $5D681B02, $2A6F2B94,
    $B40BBE37, $C30C8EA1, $5A05DF1B, $2D02EF8D);
    procedure CRC32Next(P: Pointer; const ByteCount: Cardinal; var CRC32Value: Cardinal);
    var
    CRC32Val: Cardinal;
    I: Cardinal;
    Q: ^Byte;
    begin
    Q:= P;
    CRC32Val:= CRC32Value;
    for I:= 0 to ByteCount - 1 do
    begin
    CRC32Val:= (CRC32Val shr 8) xor CRC32Table[Q^ xor (CRC32Val and $FF)];
    Inc(Q)
    end;
    CRC32Value:= CRC32Val;
    end;
    procedure CRC32Full(P: Pointer; const ByteCount: Cardinal; var CRC32Value: Cardinal);
    begin
    CRC32Value:= 0;
    CRC32Next(P, ByteCount, CRC32Value);
    end;
    end.


    و طریقه استفاده هم :

     
    var
    CRC: Cardinal;
    MS: TmemoryStream;
    begin
    MS := TMemorystream.create;
    MS.LoadFromfile('1.exe');
    CRC32Full(MS.Memory, MS.Size, CRC);
    CRC فایل مورد نظر تو متغییر CRC قرار گرفت//
    end;

  14. #14
    کاربر دائمی آواتار hasanain
    تاریخ عضویت
    مهر 1384
    محل زندگی
    بازار تهران
    پست
    149

    نقل قول: نا بلد، چه بکند؟

    با تشکر از زحمات عزیزانی که همفکری کردند و تشکر ویژه از جناب HadiDelphi بابت سورس CRC32 . این هم سورس به زبان VB6 برای کسانی که مثل من نابلد هستند:

    لینک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •