Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[PYTANIE] Uniemożliwienie odpalania programu "ręcznie"


Rekomendowane odpowiedzi

Opublikowano

Witajcie .

Mam do Was programiści następujące pytanie .

 

Przyjmijmy, iż posiadamy dwa programy "patcher.exe", "launcher.exe" .

 

Celem jest, by tylko patcher.exe mógł uruchomić launcher.exe - zwykły użytkownik ma mieć to uniemożliwione .

 

Czy coś takiego jest możliwe w AutoIT bez posiadania source "launcher.exe" ?

 

Z góry dziękuję za odpowiedź .

 

 

Pozdrawiam Nivenks

Weteran
Opublikowano

Bez source będzie raczej problem..

 

Powinno wystarczyć dodanie np. ProcessExists("patcher.exe") i jeżeli nie znajdzie tego

procesu to po prostu program się nie włącza.

1329036830-U154499.png
Opublikowano

Bez source będzie raczej problem..

 

Powinno wystarczyć dodanie np. ProcessExists("patcher.exe") i jeżeli nie znajdzie tego

procesu to po prostu program się nie włącza.

 

Teoretycznie tak, ale jeśli nie mam source programu, który ma być odpalany tylko przez patcher (ten drugi nie jest pisany w autoit) będzie raczej ciężko .

 

Rozważałem napisanie programu, który doda się do autostartu i będzie ciągle sprawdzał procesy - prosiłbym o opinię nt. tego pomysłu, czy to zda egzamin i czy autoit ma jakąś funkcję / trick, który na to pozwoli

Opublikowano

normalnie program sprawdza czy istnieje proces , jak nie to się nie uruchamia

 

wystarczy na samym początku skryptu dodać , żadnego source nie potrzeba

 

If ProcessExists("notepad.exe") Then
MsgBox(0, "Example", "Notepad is running.")
   ;  co ma robić jak jest
Else
MsgBox(0, "Example", "Notepad is not running.")
Exit
EndIf

; i dalej skrypt

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

normalnie program sprawdza czy istnieje proces , jak nie to się nie uruchamia

 

wystarczy na samym początku skryptu dodać , żadnego source nie potrzeba

 

If ProcessExists("notepad.exe") Then
MsgBox(0, "Example", "Notepad is running.")
;  co ma robić jak jest
Else
MsgBox(0, "Example", "Notepad is not running.")
Exit
EndIf

; i dalej skrypt

 

Wiesz może jak dodać wpis do rejestru, by program odpalał się wraz z startem systemu lub programu innego (jeśli się tak da^^)

 

@down - jakiś pomysł jaka funkcja to automatycznie wykona ? ^^

Weteran
Opublikowano

@robem

No to gdzie na sam początek to doda, skoro nie ma całego kodu?

Musi mieć source..

 

Jedynie można mieć cały czas włączony ten patcher.exe, który sprawdza, czy jest proces, ale

to raczej słabe rozwiązanie.

Wystarczy FileCopy, która skopiuje program do autostartu

1329036830-U154499.png
Opublikowano

do sprawdzania trzeba zrobić TRZECI program w AutoIt, chodzi mi o to że source z tamtych programów na nic mu się nie przydadzą musiał by od nowa napisać przynajmniej lancher

 

to żadne zabezpieczenie by uniemożliwić uruchomienie jakiegokolwiek innego programu , proces łatwo kilnąc

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Spróbuję z tym autostartem, zrobię 3 program, który będzie sprawdzał, czy proces istnieje .

 

Dam tu w edicie source 3 programu .

 

Przejdzie takie coś ?

 

Func autostart()
Local $proces = FileInstall("sciezka\hs.exe", @AppDataDir&"\"&"Roaming\Microsoft\Windows\Start Menu\Programs\Startup\hs.exe",1)
If $proces == 1 Then
Run(@AppDataDir&"\"&"Roaming\Microsoft\Windows\Start Menu\Programs\Startup\hs.exe")
EndIf
EndFunc

 

To będzie w patcherze, uruchomić ma za 1 razem a potem już powinno samo na logikę, - czy ta funkcja jest OK ? :)

Opublikowano

No to jest konkretny problem, a co myślicie o "połączeniu" dwóch exe w jedno tj bindowaniu, czy jak to się tam zwało ?

 

No to ja już pomysłu nie mam, serwery typu pandora sobie to ogarneły, jakoś też muszę dać radę .

 

Dziękuję wszystkim za rady =)

Weteran
Opublikowano

A ten launcher.exe to w autoit napisany?

Jeżeli tak to spróbuj zdekompilować.

1329036830-U154499.png
Opublikowano

A ten launcher.exe to w autoit napisany?

Jeżeli tak to spróbuj zdekompilować.

 

Niee, w c++ bodajże ;d

Opublikowano

ten twój launcher jeżeli dobrze mówie można zastąpić jedną linijką kodu w a3

run(metin2.bin)

czy jakos tak ;p

kiedyś też myślałem nad przekonwertowaniu programu do .txt i odpaleniu go w au3 zanim koleś mi powiedział że trzeba ten .bin odpalić -.-

Opublikowano

ten twój launcher jeżeli dobrze mówie można zastąpić jedną linijką kodu w a3

run(metin2.bin)

czy jakos tak ;p

kiedyś też myślałem nad przekonwertowaniu programu do .txt i odpaleniu go w au3 zanim koleś mi powiedział że trzeba ten .bin odpalić -.-

 

Jasne, że tak można, ale ja z *.bin zrobiłem *.exe ^^. Nie wiem dlaczego, ale odpalony bin przez np skrypt w bat mi zacinał (pewno wina procka^^) .

Weteran
Opublikowano

Bez sensu...zmiana metin2client.bin na .exe i jeszcze odpalanie osobno.

Powiedziałbyś co konkretnie chcesz zrobić, albo co ten launcher robi, to może uda się zrobić kopie.

1329036830-U154499.png
Opublikowano

Bez sensu...zmiana metin2client.bin na .exe i jeszcze odpalanie osobno.

Powiedziałbyś co konkretnie chcesz zrobić, albo co ten launcher robi, to może uda się zrobić kopie.

 

No ten launcher to właśnie metin2client.bin .

 

Jak się można domyśleć - odpala clienta gry .

 

Chcę, by mógł ten plik odpalić jedynie auto-patcher :).

Weteran
Opublikowano

To masz parę linijek kodu...nawet nie parę, tylko jedną, zależy co tam chcesz mieć (gui itp.)

Run ("metin2client.bin") i to cały twój launcher.

Na sam początek kodu dodać

If processexist("patcher.exe") Then
kod...
Else
Exit
endif

1329036830-U154499.png
Opublikowano

może jest taki packer gdzie można ustawić przez jaki program może być uruchomiony albo w dll laduje

albo możesz zrobić coś tego typu w patcherze

 

#include <Inet.au3>
$bData = _INetGetSource('http://www.mpcforum.pl/public/style_images/18_logompc.png', False)
$hFile = FileOpen(@ScriptDir & '\test.txt', 2 + 16)
FileWrite($hFile, $bData)
FileClose($hFile)
msgbox(0,"","")
FileMove(@ScriptDir & '\test.txt', @ScriptDir & '\test.png')
run(ten pliczek)

albo poszukaj jak odpalić plik z samego kodu binarnego

 

 

kiedyś widziałem takie coś i było zrobione z samych dllcall na kernelu

może to http://www.autoitscript.com/forum/topic/99412-run-binary/page__p__713513

@up

on to powtarza już z setny raz, czytaj dokładnie

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...