SpareNet Servers Advertising & Link Exchange

اطلاعیه

بستن
هیچ اطلاعیه ای هنوز ایجاد نشده است .

استفاده از یک نرم افزار در یک برنامه

بستن
X
 
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
نوشته‌های جدید

  • استفاده از یک نرم افزار در یک برنامه

    سلام
    چطور میشه از یک برنامه نوشته شده و فایل exe در برنامه خودمون استفاده کنیم
    فرض مثال یک نرم افزار داریم که کار خاصی انجام میدهد حالا باید روی یک یا چند تا کلیک بزنیم تا کار مورد نظر رو انجام شود
    من میخوام بدونم که چطور برنامه ای بنویسم که دو برنامه رو به هم متصل کنه؟

  • #2
    یعنی یک فایل exe داخل برنامه شما لود شود و در نهایت برنامه بتواند ان را اجرا کند ؟

    اگر منظور شما این روش هست در vb و c میتوانید از بخش ریسورس فایل استفاده کنید .
    -----------------------------SAFE MASTER---------------------------
    تاپیک هکر های تازه وارد

    نظر


    • #3
      نوشته اصلی توسط SafeMaster نمایش پست ها
      یعنی یک فایل exe داخل برنامه شما لود شود و در نهایت برنامه بتواند ان را اجرا کند ؟

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

      نظر


      • #4
        با چه زبانی کد میزنید ؟
        -----------------------------SAFE MASTER---------------------------
        تاپیک هکر های تازه وارد

        نظر


        • #5
          خیلی کم و در حد کار راه اندازی از این زبون ها میدونم c# و vb و vb.net

          نظر


          • #6
            نوشته اصلی توسط SafeMaster نمایش پست ها
            با چه زبانی کد میزنید ؟
            خیلی کم و در حد کار راه اندازی از این زبون ها میدونم c# و vb و vb.net

            نظر


            • #7
              نوشته اصلی توسط abbasalifix نمایش پست ها

              خیلی کم و در حد کار راه اندازی از این زبون ها میدونم c# و vb و vb.net
              اولا که روتین تغییر سریال هارد را میتونید به کد خودتون اضافه کنید در صورتی هم که میخواهید از برنامه دیگه استفاده کنید باید از برنامه ای باشه که Command Switch داشته باشه و شما برنامه را به صورت اجرایی داخل خود برنامه خودتون اجرا کنید و خروجی اون را بگیرید

              کد #C به همین حالت میشه

              کد:
              static int Main(string[] args)
              {
              Application.EnableVisualStyles();
              Application.SetCompatibleTextRenderingDefault(false);
              
              Console.WriteLine(args[0]);
              Console.WriteLine(args[1]);
              
              return 1;
              }
              حالا اینجا اون برنامه دوم را اینطوری صدا میکنی

              فرض کن اسم اون برنامه که سریال هارد را عوض میگیره یا عوض میکنه hddserial.exe هست و با کامند c/ این کارو انجام میده

              کد:
              System.Diagnostics.Process p = System.Diagnostics.Process.Start("hddserial.exe", "/c");
              p.StartInfo.UseShellExecute = false;
              p.StartInfo.CreateNoWindow = true;
              p.StartInfo.RedirectStandardOutput = true;
              p.StartInfo.RedirectStandardError = true;
              
              p.Start();
              
              string output = p.StandardOutput.ReadToEnd();
              string error = p.StandardError.ReadToEnd();
              
              p.WaitForExit();
              
              int exitCode = p.ExitCode;

              نظر


              • #8
                نوشته اصلی توسط abbasalifix نمایش پست ها
                سلام
                چطور میشه از یک برنامه نوشته شده و فایل exe در برنامه خودمون استفاده کنیم
                فرض مثال یک نرم افزار داریم که کار خاصی انجام میدهد حالا باید روی یک یا چند تا کلیک بزنیم تا کار مورد نظر رو انجام شود
                من میخوام بدونم که چطور برنامه ای بنویسم که دو برنامه رو به هم متصل کنه؟
                این هم تابع عوض کردن سریال داریو با #C

                کد:
                void ChangeSerialNumber(char volume, uint newSerial)
                {
                var fsInfo = new[]
                {
                new { Name = "FAT32", NameOffs = 0x52, SerialOffs = 0x43 },
                new { Name = "FAT", NameOffs = 0x36, SerialOffs = 0x27 },
                new { Name = "NTFS", NameOffs = 0x03, SerialOffs = 0x48 }
                };
                
                using (var disk = new Disk(volume))
                {
                var sector = new byte[512];
                disk.ReadSector(0, sector);
                
                var fs = fsInfo.FirstOrDefault(
                f => Strncmp(f.Name, sector, f.NameOffs)
                );
                if (fs == null) throw new NotSupportedException("This file system is not supported");
                
                var s = newSerial;
                for (int i = 0; i < 4; ++i, s >>= 8) sector[fs.SerialOffs + i] = (byte)(s & 0xFF);
                
                disk.WriteSector(0, sector);
                }
                }
                
                bool Strncmp(string str, byte[] data, int offset)
                {
                for(int i = 0; i < str.Length; ++i)
                {
                if (data[i + offset] != (byte)str[i]) return false;
                }
                return true;
                }
                
                class Disk : IDisposable
                {
                private SafeFileHandle handle;
                
                public Disk(char volume)
                {
                var ptr = CreateFile(
                String.Format("\\\\.\\{0}:", volume),
                FileAccess.ReadWrite,
                FileShare.ReadWrite,
                IntPtr.Zero,
                FileMode.Open,
                0,
                IntPtr.Zero
                );
                
                handle = new SafeFileHandle(ptr, true);
                
                if (handle.IsInvalid) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWi n32Error());
                }
                
                public void ReadSector(uint sector, byte[] buffer)
                {
                if (buffer == null) throw new ArgumentNullException("buffer");
                if (SetFilePointer(handle, sector, IntPtr.Zero, EMoveMethod.Begin) == INVALID_SET_FILE_POINTER) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWi n32Error());
                
                uint read;
                if (!ReadFile(handle, buffer, buffer.Length, out read, IntPtr.Zero)) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWi n32Error());
                if (read != buffer.Length) throw new IOException();
                }
                
                public void WriteSector(uint sector, byte[] buffer)
                {
                if (buffer == null) throw new ArgumentNullException("buffer");
                if (SetFilePointer(handle, sector, IntPtr.Zero, EMoveMethod.Begin) == INVALID_SET_FILE_POINTER) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWi n32Error());
                
                uint written;
                if (!WriteFile(handle, buffer, buffer.Length, out written, IntPtr.Zero)) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWi n32Error());
                if (written != buffer.Length) throw new IOException();
                }
                
                public void Dispose()
                {
                Dispose(true);
                GC.SuppressFinalize(this);
                }
                
                protected virtual void Dispose(bool disposing)
                {
                if (disposing)
                {
                if (handle != null) handle.Dispose();
                }
                }
                
                enum EMoveMethod : uint
                {
                Begin = 0,
                Current = 1,
                End = 2
                }
                
                const uint INVALID_SET_FILE_POINTER = 0xFFFFFFFF;
                
                [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
                public static extern IntPtr CreateFile(
                string fileName,
                [MarshalAs(UnmanagedType.U4)] FileAccess fileAccess,
                [MarshalAs(UnmanagedType.U4)] FileShare fileShare,
                IntPtr securityAttributes,
                [MarshalAs(UnmanagedType.U4)] FileMode creationDisposition,
                int flags,
                IntPtr template);
                
                [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
                static extern uint SetFilePointer(
                [In] SafeFileHandle hFile,
                [In] uint lDistanceToMove,
                [In] IntPtr lpDistanceToMoveHigh,
                [In] EMoveMethod dwMoveMethod);
                
                [DllImport("kernel32.dll", SetLastError = true)]
                static extern bool ReadFile(SafeFileHandle hFile, [Out] byte[] lpBuffer,
                int nNumberOfBytesToRead, out uint lpNumberOfBytesRead, IntPtr lpOverlapped);
                
                [DllImport("kernel32.dll")]
                static extern bool WriteFile(SafeFileHandle hFile, [In] byte[] lpBuffer,
                int nNumberOfBytesToWrite, out uint lpNumberOfBytesWritten,
                [In] IntPtr lpOverlapped);
                }

                فرض کن بخواهی سریال درایو C را عوض کنی :

                کد:
                ChangeSerialNumber('C', 0x12345678);

                نظر


                • #9
                  نوشته اصلی توسط SH0CK نمایش پست ها

                  این هم تابع عوض کردن سریال داریو با #C

                  کد:
                  void ChangeSerialNumber(char volume, uint newSerial)
                  {
                  var fsInfo = new[]
                  {
                  new { Name = "FAT32", NameOffs = 0x52, SerialOffs = 0x43 },
                  new { Name = "FAT", NameOffs = 0x36, SerialOffs = 0x27 },
                  new { Name = "NTFS", NameOffs = 0x03, SerialOffs = 0x48 }
                  };
                  
                  using (var disk = new Disk(volume))
                  {
                  var sector = new byte[512];
                  disk.ReadSector(0, sector);
                  
                  var fs = fsInfo.FirstOrDefault(
                  f => Strncmp(f.Name, sector, f.NameOffs)
                  );
                  if (fs == null) throw new NotSupportedException("This file system is not supported");
                  
                  var s = newSerial;
                  for (int i = 0; i < 4; ++i, s >>= 8) sector[fs.SerialOffs + i] = (byte)(s & 0xFF);
                  
                  disk.WriteSector(0, sector);
                  }
                  }
                  
                  bool Strncmp(string str, byte[] data, int offset)
                  {
                  for(int i = 0; i < str.Length; ++i)
                  {
                  if (data[i + offset] != (byte)str[i]) return false;
                  }
                  return true;
                  }
                  
                  class Disk : IDisposable
                  {
                  private SafeFileHandle handle;
                  
                  public Disk(char volume)
                  {
                  var ptr = CreateFile(
                  String.Format("\\\\.\\{0}:", volume),
                  FileAccess.ReadWrite,
                  FileShare.ReadWrite,
                  IntPtr.Zero,
                  FileMode.Open,
                  0,
                  IntPtr.Zero
                  );
                  
                  handle = new SafeFileHandle(ptr, true);
                  
                  if (handle.IsInvalid) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWi n32Error());
                  }
                  
                  public void ReadSector(uint sector, byte[] buffer)
                  {
                  if (buffer == null) throw new ArgumentNullException("buffer");
                  if (SetFilePointer(handle, sector, IntPtr.Zero, EMoveMethod.Begin) == INVALID_SET_FILE_POINTER) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWi n32Error());
                  
                  uint read;
                  if (!ReadFile(handle, buffer, buffer.Length, out read, IntPtr.Zero)) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWi n32Error());
                  if (read != buffer.Length) throw new IOException();
                  }
                  
                  public void WriteSector(uint sector, byte[] buffer)
                  {
                  if (buffer == null) throw new ArgumentNullException("buffer");
                  if (SetFilePointer(handle, sector, IntPtr.Zero, EMoveMethod.Begin) == INVALID_SET_FILE_POINTER) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWi n32Error());
                  
                  uint written;
                  if (!WriteFile(handle, buffer, buffer.Length, out written, IntPtr.Zero)) Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWi n32Error());
                  if (written != buffer.Length) throw new IOException();
                  }
                  
                  public void Dispose()
                  {
                  Dispose(true);
                  GC.SuppressFinalize(this);
                  }
                  
                  protected virtual void Dispose(bool disposing)
                  {
                  if (disposing)
                  {
                  if (handle != null) handle.Dispose();
                  }
                  }
                  
                  enum EMoveMethod : uint
                  {
                  Begin = 0,
                  Current = 1,
                  End = 2
                  }
                  
                  const uint INVALID_SET_FILE_POINTER = 0xFFFFFFFF;
                  
                  [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
                  public static extern IntPtr CreateFile(
                  string fileName,
                  [MarshalAs(UnmanagedType.U4)] FileAccess fileAccess,
                  [MarshalAs(UnmanagedType.U4)] FileShare fileShare,
                  IntPtr securityAttributes,
                  [MarshalAs(UnmanagedType.U4)] FileMode creationDisposition,
                  int flags,
                  IntPtr template);
                  
                  [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
                  static extern uint SetFilePointer(
                  [In] SafeFileHandle hFile,
                  [In] uint lDistanceToMove,
                  [In] IntPtr lpDistanceToMoveHigh,
                  [In] EMoveMethod dwMoveMethod);
                  
                  [DllImport("kernel32.dll", SetLastError = true)]
                  static extern bool ReadFile(SafeFileHandle hFile, [Out] byte[] lpBuffer,
                  int nNumberOfBytesToRead, out uint lpNumberOfBytesRead, IntPtr lpOverlapped);
                  
                  [DllImport("kernel32.dll")]
                  static extern bool WriteFile(SafeFileHandle hFile, [In] byte[] lpBuffer,
                  int nNumberOfBytesToWrite, out uint lpNumberOfBytesWritten,
                  [In] IntPtr lpOverlapped);
                  }

                  فرض کن بخواهی سریال درایو C را عوض کنی :

                  کد:
                  ChangeSerialNumber('C', 0x12345678);
                  ممنون از همراهی شما
                  این برنامه ای که گذاشتین فقط ولوم درایو رو عوض میکنه
                  سریال هارد رو فقط میشه با متد spoofing عوض کرد که چیزی ازش پیدا نکردم جز یه نرم افزار که درست کارمیکنه اما سورسی ازش ندارم

                  نظر


                  • #10
                    ببینید
                    یک نرم افزار آماده داریم که یک text box داره و یک کلید button
                    میخوام برنامه دومی داشته باشم که به مجض اجرا بتونم محتوای داخل text box نرم افزار اولی رو تغییر بدم و روی کلید button نرم افزار اولی کلید کنم
                    آیا چنین چیزی میشه؟ نام متدش چی هست؟کار ساده ای هست یا مشکل؟

                    نظر


                    • #11
                      بله امکان این کار موجوده چند سال پیش روی ابزار دیپ فریز دی اکتیور این کارو انجام دادیم که به محض اجرای exe دکمه بصورت پیشفرض که مربوط به یک برنامه دیگه بود ران بشه نیاز به کرک و کد نویسی اسمبلی روی نرم افزار مورد نظرت داری و میتونی از نرم افزار OllyDbg استفاده کنی ، اگر هم میخای برنامه بنویسی که اینکارو انجام بده زبان مورد نظرتو + call a function from another program از دکتر گوگل سرچ کن
                      -----------------------------SAFE MASTER---------------------------
                      تاپیک هکر های تازه وارد

                      نظر


                      • #12
                        سلام این کار با زبان دلفی 7 که بهترین زبان برای طراحی rat و ویروس می باشد براحتی امکان پذیر است

                        سیستم عامل ویندوز با یک سیستم ارتباطی بین پنجره ای به نام handle کار می کند و هر شی در ویندوز یکی handle دارد

                        شما براحتی می توانید handle ان textbox نرم افزار دیگر را با api بدست بیاورید و سپس با استفاده از همان handle مقدار متن درون آن را تغییر بدهید و سپس handle باتن را بدست بیاورید و رویداد کلیک آن را فارخوانی نمایید

                        اگر با زبان دلفی کد می زنید همین جا بگویید تا کد آن را برایتان قرار بدهم

                        نظر


                        • #13
                          با تشکر از شمادوست عزیز

                          نظر

                          صبر کنید ..
                          X