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

جمع کردن
X
 
  • زمان
  • نمایش
پاک کردن همه
پست‌های جدید
  • abbasalifix
    تازه وارد
    • Aug 2012
    • 10

    #1

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

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

    • Apr 2017
    • 1375

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

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

    نظر

    • abbasalifix
      تازه وارد
      • Aug 2012
      • 10

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

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

      نظر

      • SafeMaster
        مدیر ارشد

        • Apr 2017
        • 1375

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

        نظر

        • abbasalifix
          تازه وارد
          • Aug 2012
          • 10

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

          نظر

          • abbasalifix
            تازه وارد
            • Aug 2012
            • 10

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

            نظر

            • SH0CK
              🦴💀

              • Jul 2018
              • 6188

              #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;

              نظر

              • SH0CK
                🦴💀

                • Jul 2018
                • 6188

                #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);

                نظر

                • abbasalifix
                  تازه وارد
                  • Aug 2012
                  • 10

                  #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 عوض کرد که چیزی ازش پیدا نکردم جز یه نرم افزار که درست کارمیکنه اما سورسی ازش ندارم

                  نظر

                  • abbasalifix
                    تازه وارد
                    • Aug 2012
                    • 10

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

                    نظر

                    • SafeMaster
                      مدیر ارشد

                      • Apr 2017
                      • 1375

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

                      نظر

                      • amirhexadecimal
                        تازه وارد
                        • Feb 2021
                        • 9

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

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

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

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

                        نظر

                        • SH0CK
                          🦴💀

                          • Jul 2018
                          • 6188

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

                          نظر

                          در حال کار...