jak zmodyfikować plik exe za pomocą php ?

0

Witam, tworzę program partnerski, kazdy uzytkownik programu partnerskiego otrzymuje wlasny plik exe, uzytkownik otrzymuje prowizje za jedna instalacje pliku exe, nie wiem tylko jak oznaczyc ten plik exe abym pozniej wiedzial do ktorego Affiliata on nalezy i aby zliczyc mu instalacje...nazwa ID uzytkownika w nazwie pliku nie wchodzi w gre... chciałbym po prostu gdy uzytkownik wchodzi na strone programu partnerskiego (php) i pobiera plik exe oznaczyc ten exe plik jego ID - Nickiem w programie partnerskim .. ? dzieki za pomoc

0

A czy sam program przy pierwszym uruchomieniu nie mógłby prosić o ponowne podanie danych do logowania, jeżeli te by sie zgadzały to wysyłal by do innego skryptu na serverze odpowiedni ID pobrany wcześniej na podstawie loginu na przykład i skrypt php na serwerze zapisywał by te dane. Na PHP się nie znam prawie wcale, ale w Delphi łączenie i obsluga protokołu HTTP aby wysłac dane metodą POST można wykonać z pakietem Indy albo najlepiej Synapse. Do obu są przykłady i dokumentacja, a także wiele informacji do znalezienia w google. No chyba, ze taki sposób Tobie nie odpowiada, bo program pobierany nie jest Twój, a stworzyć prosty instalator nie masz ochoty, bo nie wiem czy na przykład w NSISie albo Inno Setup można łatwo skorzystać z protokołu HTTP, bo używam tylko NSIS'a i to czasami, a nigdy pod tym pakietem tego nie robiłem.

0

Bardzo prosty sposób, to co dopiszesz na samym końcu pliku jest olewane, więc wystarczy że dopiszesz coś na samym końcu pliku, a w kodzie programu spowodujesz, żeby otworzył sam siebie jako plik, seeknął się na koniec pliku i przeczytał wcześniej dolepiony identyfikator.

0

dzieki olesio ale to mi nie odpowiada, chcialbym zrobic tak -- affilant chce pobrac nowy program do promocji klika w link php wyskakuje mu plik exe w ktorym jest zapisany jego ID.. zapisuje go na dysk.

i moze zaczac rozprowadzac ten plik exe w jaki tam sposob chce... gdy osoba ktorej on wysle exe czyli promuje uruchomi ten exe wtedy funkcja w pliku wyciąga to zapisane ID i wysyla dane do serwera ... dodam ze exek jest w delphi i z tym wysyłaniem danych do serwera sobie poradze.

Demonical Monk .. tak sproboje zrobic chociaz z PHP u mnie bardzo słabo, program partnerski pisze dla mnie ktoś inny. dzieki.

0

Przecież na serverze możesz zapisać w tabeli Id użytkownika, i to czy pobrał program True/False.
Przy pierwszym uruchomieniu programu, program wysyła do skryptu php informacje że jest pobrany.
Skrypt zmienia wartość w tabeli z False na True.
Jak wysłać wiadomość do skryptu, masz na dole, tylko że musisz mieć komponent TidHTTP.

var
  StreamOut : TStringStream;
  Url : String;
begin
  Url := 'Adres twojego skryptu, np. htttp://www.google.pl/mojskrypt.php';
  HTTP.Host := 'domena twojej strony np. google.pl';
  StreamIn := TStringStream.Create('');
  try
    HTTP.Get(URL + '?' + 'zmienna1=' + 'wartosc', StreamOut);
    ShowMessage('Wyslano');
  finally
    StreamOut.Free;
  end;
end;

Przykładowy kod skryptu php:

<?php
  $cos_tam = $_GET['zmienna1'];
?>
1
haki888 napisał(a)

dzieki olesio ale to mi nie odpowiada, chcialbym zrobic tak -- affilant chce pobrac nowy program do promocji klika w link php wyskakuje mu plik exe w ktorym jest zapisany jego ID.. zapisuje go na dysk.

i moze zaczac rozprowadzac ten plik exe w jaki tam sposob chce... gdy osoba ktorej on wysle exe czyli promuje uruchomi ten exe wtedy funkcja w pliku wyciąga to zapisane ID i wysyla dane do serwera ... dodam ze exek jest w delphi i z tym wysyłaniem danych do serwera sobie poradze.

Demonical Monk .. tak sproboje zrobic chociaz z PHP u mnie bardzo słabo, program partnerski pisze dla mnie ktoś inny. dzieki.

Nic trudnego :) Bodajże wystarczy zrobić tak:

$id_klienta = 2;
header('Content-Type: application/exe'); //informujemy że to .exe, żeby użytkownik nie dostał krzaków na ekranie przypadkiem
readfile('program_partnerski.exe'); //czytamy czysty .exe, który nie ma w sobie informacji o partnerze
echo($id_klienta); //skoro readfile wysłał klientowi zawartość pliku program_partnerski.exe, to my robiąc echo dopiszemy coś na samym końcu pliku

Dogadaj się z człowiekiem, który robi dla ciebie .exe. Jeśli nie jest na poziomie TomaRiddle, to będziecie raczej potrafili to wszystko ogarnąć...

@TomRiddle
Teraz wyjaśnię, czemu twoje rozwiązanie w żaden sposób nie ociera się nawet o temat (zresztą olesia podobnie). Autor tematu chce dynamicznie generować .exe dla różnych klientów, tak żeby ten system w pełni samodzielnie działał (czyli w praktyce, żeby nie trzeba było rekompilować .exe dla każdego klienta). Skąd chcesz wziąć to, co masz wstawić zamiast 'wartosc'? Bo w sumie, cały wątek rozchodzi się o ustalenie właśnie tej części, którą ty "hardcodowałeś"...

0

Warto też zapisywać ściśle określoną liczbę znaków/bajtów na końcu pliku (lub określony ciąg znaków) by 'wiedzieć' od którego miejsca odczytać ID klienta. Po stronie PHP możesz łatwo to załatwić używając sprintf

0

Demonical Monk zgadza się....niestety dużo osób zabiera się za odpowiedź ale ze złym zrozumieniem pytania.. autorem exe jestem ja..dzieki za ten kod.

dzieki demonical monk...ten kod działa tak jak powinien . :) THX

2

zapisz id w postaci markera w exeku w zmiennej np. "[xxMARKERxx]" i w skrypcie PHP przeszukaj taki template exeka w poszukiwaniu markera i podmień zawartość markera na dany id usera, albo jak ci mówią dopisz do czystego exeka na końcu w postaci overlaya (łatwe do obczajenia)

1 użytkowników online, w tym zalogowanych: 0, gości: 1