C# Anti Suspend #2 with PHP

fr3dofficial

TG: fr3dofficial
Gold Üye
Katılım
16 May 2022
Mesajlar
182
Beğeniler
100
Bu yöntemde php API ye belli sürede bir kalp atışı sinyali mantığı ile istek gönderilir ve process suspend olunca arada fark oluşur. Bu farkı tespit eden process kendini resume edildiği zaman kapatır.

(Mantığı kurup kodu iletiyorum olduğu gibi kullanmayın geliştirin eksik yönleri çok fazla. En basitinden apiye isteği atarken şifreleme yapın php tarafında şifreyi çözün aksi halde http Debugger ile respons manipüle edilir)

C#:
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;

class Program
{
    static async Task Main(string[] args)
    {
        HttpClient client = new HttpClient();
        string heartbeatUrl = "https://yourapi.com/heartbeat.php";
        string kontrolUrl = "https://yourapi.com/kontrol.php";
        int interval = 5000;

        while (true)
        {
            try
            {
                // Heartbeat için istek
                var heartbeatResponse = await client.PostAsync(heartbeatUrl, null);
                if (heartbeatResponse.IsSuccessStatusCode)
                {
                    Console.WriteLine("Heartbeat başarılı: " + DateTime.Now);
                }
                else
                {
                    Console.WriteLine("Heartbeat başarısız, uygulama kapanıyor...");
                    Environment.Exit(1);
                }

                // Kontrol için istek
                var kontrolResponse = await client.GetAsync(kontrolUrl);
                if (kontrolResponse.IsSuccessStatusCode)
                {
                    var responseBody = await kontrolResponse.Content.ReadAsStringAsync();
                    var json = JObject.Parse(responseBody);

                    if (json["status"] != null && json["status"].ToString() == "running")
                    {
                        Console.WriteLine("Uygulama çalışıyor: " + DateTime.Now);
                    }
                    else if (json["status"].ToString() == "timeout")
                    {
                        Console.WriteLine("Uygulama zaman aşımına uğradı, kapanıyor...");
                        Environment.Exit(1);
                    }
                }
                else
                {
                    Console.WriteLine("Kontrol başarısız, uygulama kapanıyor...");
                    Environment.Exit(1);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Hata: " + ex.Message);
                Environment.Exit(1);
            }

            await Task.Delay(interval);
        }
    }
}



heartbeat
PHP:
<?php
$file = 'heartbeat.txt';
$currentTime = time();

if (file_put_contents($file, $currentTime) !== false) {
    header('Content-Type: application/json');
    http_response_code(200);
    echo json_encode(['status' => 'success', 'timestamp' => $currentTime]);
} else {
    header('Content-Type: application/json');
    http_response_code(500);
    echo json_encode(['status' => 'error', 'message' => 'Dosya yazılamadı']);
}

Kontrol.php
PHP:
<?php
$file = 'heartbeat.txt';
$currentTime = time();
$timeout = 10; // 10 saniyelik zaman aşımı süresi
$response = [];

// Dosya mevcutsa ve zaman damgası okunabiliyorsa
if (file_exists($file)) {
    $lastHeartbeat = (int)file_get_contents($file);

    if (($currentTime - $lastHeartbeat) > $timeout) {
        http_response_code(408); // Request Timeout
        $response = [
            'status' => 'timeout',
            'message' => 'Uygulama zaman aşımına uğradı.'
        ];
    } else {
        http_response_code(200); // OK
        $response = [
            'status' => 'running',
            'message' => 'Uygulama normal çalışıyor.'
        ];
    }
} else {
    http_response_code(500); // Internal Server Error
    $response = [
        'status' => 'error',
        'message' => 'Heartbeat dosyası bulunamadı.'
    ];
}

header('Content-Type: application/json');
echo json_encode($response);
 
Son düzenleme:
kod bilginizi tebrik ediyorum hocam hatasız kodlamışsınız.
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt