powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ручная регистрация ActiveX dll
16 сообщений из 41, страница 2 из 2
Ручная регистрация ActiveX dll
    #38946390
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proа как ты записываешь данные в exe?
Юзаю готовый код. Ибо сам еще не настолько продвинут чтобы писать такой.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
Public Sub LoadFromEXE()
  Dim hRes As Long, hMem As Long, ptr As Long, l As Long, Msg As String
   hRes = FindResource(0, StrPtr(ResName), RT_RCDATA)
     If hRes Then
        hMem = LoadResource(0, hRes)
        If hMem Then
            l = SizeofResource(0, hRes)
            If l Then
                ptr = LockResource(hMem)
                GetMem4 ByVal ptr, l
                  Msg = Space(l \ 2)
                    CopyMemory ByVal StrPtr(Msg), ByVal ptr + 4, l
                       Dim separate() As String
                           separate = Split(Msg, "@/@\@")
                       znachenieSN = separate(0)
                    Win8ProductKey = separate(1)
                         FolderInf = separate(2)
               
            End If
        End If
    End If
End Sub


Public Sub StoreToExe()
glueStr = znachenieSN + "@/@\@" + Win8ProductKey + "@/@\@" + FolderInf
    Dim hLib As Long
    Dim td As ThreadData, ts As Long, path As String, pi As PROCESS_INFORMATION, si As STARTUPINFO, hProc As Long, lpDat As Long, pt As Long
    Dim Code() As Byte, Data() As Byte, ret As Long, thr As Long, otd As Long
    hLib = GetModuleHandle("kernel32")
    If hLib = 0 Then MsgBox "Error": Exit Sub
    td.lpWFSO = GetProcAddress(hLib, "WaitForSingleObject")
    td.lpCH = GetProcAddress(hLib, "CloseHandle")
    td.lpBUR = GetProcAddress(hLib, "BeginUpdateResourceW")
    td.lpUR = GetProcAddress(hLib, "UpdateResourceW")
    td.lpEUR = GetProcAddress(hLib, "EndUpdateResourceW")
    td.lpEP = GetProcAddress(hLib, "ExitProcess")
    
    path = App.path & "\" & App.EXEName & ".exe" & vbNullChar
    CreateCode Code
    ts = LenB(path) + LenB(ResName) + (UBound(Code) + 1) + LenB(glueStr) + Len(td) + 4
    si.cb = Len(si)
    si.dwFlags = STARTF_USESHOWWINDOW
    si.wShowWindow = SW_HIDE
    If CreateProcess(StrPtr(Environ("ComSpec")), 0, ByVal 0&, ByVal 0&, False, CREATE_SUSPENDED, ByVal 0, 0, si, pi) = 0 Then
        MsgBox "error": Exit Sub
    End If
    hProc = GetCurrentProcess() 
    DuplicateHandle hProc, hProc, pi.hProcess, td.hParent, 0, False, DUPLICATE_SAME_ACCESS
    td.dwDataCount = LenB(glueStr) + 4       
   
    lpDat = VirtualAllocEx(pi.hProcess, ByVal 0, ts, MEM_COMMIT Or MEM_RESERVE, PAGE_EXECUTE_READWRITE)
    If lpDat = 0 Then
        MsgBox "Error": CloseHandle pi.hThread: CloseHandle pi.hProcess
        VirtualFreeEx pi.hProcess, ByVal lpDat, 0, MEM_RELEASE
        Exit Sub
    End If
   
    ReDim Data(ts - 1)
   
    CopyMemory Data(pt), ByVal StrPtr(path), LenB(path)
    td.lpFileName = lpDat + pt: pt = pt + LenB(path)
   
    CopyMemory Data(pt), ByVal StrPtr(ResName), LenB(ResName)
    td.lpRsrcName = lpDat + pt: pt = pt + LenB(ResName)
   
    GetMem4 LenB(glueStr), Data(pt)          
    CopyMemory Data(pt + 4), ByVal StrPtr(glueStr), LenB(glueStr)
    td.lpData = lpDat + pt: pt = pt + LenB(glueStr) + 4
    
    CopyMemory Data(pt), td, Len(td): otd = pt: pt = pt + Len(td)
    
    CopyMemory Data(pt), Code(0), UBound(Code) + 1
   
    If WriteProcessMemory(pi.hProcess, lpDat, Data(0), ts, ret) Then
        If ret <> ts Then
            MsgBox "Error": CloseHandle pi.hThread: CloseHandle pi.hProcess
            VirtualFreeEx pi.hProcess, ByVal lpDat, 0, MEM_RELEASE
            Exit Sub
        End If
       
        thr = CreateRemoteThread(pi.hProcess, ByVal 0, 0, lpDat + pt, ByVal lpDat + otd, 0, 0)
        If thr = 0 Then
            MsgBox "Error": CloseHandle pi.hThread: CloseHandle pi.hProcess
            VirtualFreeEx pi.hProcess, ByVal lpDat, 0, MEM_RELEASE
            Exit Sub
        End If
    End If
    
    CloseHandle thr
    CloseHandle pi.hThread
    CloseHandle pi.hProcess
End Sub
Private Sub CreateCode(Code() As Byte)
    ReDim Code(63)
    Code(0) = &H8B: Code(1) = &H74: Code(2) = &H24: Code(3) = &H4: Code(4) = &H31: Code(5) = &HDB: Code(6) = &H53: Code(7) = &H6A
    Code(8) = &HFF: Code(9) = &HFF: Code(10) = &H36: Code(11) = &HFF: Code(12) = &H56: Code(13) = &H14: Code(14) = &HFF: Code(15) = &H36
    Code(16) = &HFF: Code(17) = &H56: Code(18) = &H18: Code(19) = &H53: Code(20) = &HFF: Code(21) = &H76: Code(22) = &H4: Code(23) = &HFF
    Code(24) = &H56: Code(25) = &H1C: Code(26) = &H89: Code(27) = &H4: Code(28) = &H24: Code(29) = &H85: Code(30) = &HC0: Code(31) = &H74
    Code(32) = &H1B: Code(33) = &HFF: Code(34) = &H76: Code(35) = &H10: Code(36) = &HFF: Code(37) = &H76: Code(38) = &HC: Code(39) = &H53
    Code(40) = &HFF: Code(41) = &H76: Code(42) = &H8: Code(43) = &H6A: Code(44) = &HA: Code(45) = &HFF: Code(46) = &H74: Code(47) = &H24
    Code(48) = &H14: Code(49) = &HFF: Code(50) = &H56: Code(51) = &H20: Code(52) = &H53: Code(53) = &HFF: Code(54) = &H74: Code(55) = &H24
    Code(56) = &H4: Code(57) = &HFF: Code(58) = &H56: Code(59) = &H24: Code(60) = &H53: Code(61) = &HFF: Code(62) = &H56: Code(63) = &H28
End Sub
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946393
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну split и всякие мелочи уже дописал я, чтобы адаптировать под свою прогу
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946396
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ужас, зачем всё это? у вас там windows defender не ругается на ваше приложение?
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946400
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneужас, зачем всё это? у вас там windows defender не ругается на ваше приложение?
Ну надо, раз сделал. Моя допотопная защита. простите учусь другого пока не умею. Хочу хоть это допилить.

Нет не ругается.
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946401
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FolderInf как формируется?
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946404
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProFolderInf как формируется?
Код: vbnet
1.
FolderInf = FileDateTime(Environ("WINDIR"))
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946413
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946414
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а лучше так:

Код: vbnet
1.
2.
3.
4.
5.
Dim fso As New FileSystemObject
Dim fil As File

Set fil = fso.GetFile("C:\foo.txt")
Debug.Print fil.DateLastModified
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946421
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

Зачем мне это? Англ. не в совершенстве знаю. Да и я же сказал что компилированный exe работает. Вот поэтому и решил у вас спросить. В чем может быть трабла. Где искать. Ладно если бы компилировал и он то же выдавал.
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946422
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только я не пойму зачем нужна дата последней модификации?
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946433
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneтолько я не пойму зачем нужна дата последней модификации?

Хочу привязать к компу( определенному)
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946443
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronKonst_Oneтолько я не пойму зачем нужна дата последней модификации?

Хочу привязать к компу( определенному)

обычно делают комплексный ключ: номер материнки+номер hdd+номер сетевой
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946656
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38946799
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ATM-TURBO 2,

Это регистрация dll. Вопрос в другом был....
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38947920
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На 2 машины норм установил. На третей при запуске сразу вылезла ошибка. Из-чего она могла произойти?(((
...
Рейтинг: 0 / 0
Ручная регистрация ActiveX dll
    #38948373
vdekameron,

вполне возможно, что проблема обозначена в описании ошибки :)
Dependency Walker в помощь.
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ручная регистрация ActiveX dll
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]