1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hỏi đáp [Closed] Lỗi chạy code khi mã hóa với Obfuscator 2.1 (không mã hoá chạy bình thường)

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi nokati, 11/1/17.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. nokati

    nokati Thành viên mới
    • 3/6

    Tham gia ngày:
    7/12/15
    Bài viết:
    5
    Đã được thích:
    4
    Đây là đoạn code :

    Mã (AutoIt):

    #include <TCP.au3>
    #include <Array.au3>
    #include <Date.au3>

    ; 2D Array of connected clients:
    ;   [0][0] = Count
    ;   [n][0] = Socket
    ;   [n][1] = Date/Time connected
    ;   [n][2] = IP Address
    Global $avClients[1][3] = [[0]]

    ToolTip("SERVER: Creating server...", 10, 30)
    Global $hServer = _TCP_Server_Create(88)

    _TCP_RegisterEvent($hServer, $TCP_NEWCLIENT, "NewClient")
    _TCP_RegisterEvent($hServer, $TCP_DISCONNECT, "Disconnect")

    While 1
        Sleep(10)
    WEnd

    Func NewClient($hSocket, $iError)
    ; Get parameters
        Local $sDateTime = _NowCalc()
        Local $sIP = _TCP_Server_ClientIP($hSocket)

    ; Add entry to global array
        ReDim $avClients[UBound($avClients) + 1][3]
        $avClients[0][0] = UBound($avClients) - 1
        $avClients[$avClients[0][0]][0] = $hSocket
        $avClients[$avClients[0][0]][1] = $sDateTime
        $avClients[$avClients[0][0]][2] = $sIP

    ; Notify operator
        ToolTip("SERVER: New client connected:" & @CRLF & _
                "Socket: " & $hSocket & @CRLF & _
                "Date/Time: " & $sDateTime & @CRLF & _
                "IP: " & $sIP, 10, 30)

    ; Send connection reply
        _TCP_Send($hSocket, "Bleh!")
    EndFunc  ;==>NewClient

    Func Disconnect($hSocket, $iError)
    ; Get parameters
        Local $sDateTime = _NowCalc()
        Local $iIndex = _ArraySearch($avClients, $hSocket, 1, 0, 0, 0, 1, 0)
        If @error Then
            MsgBox(16, "Error", "Diconnected socket not found in list.", 30)
            Return
        EndIf
        Local $sConnTime = $avClients[$iIndex][1]
        Local $sIP = $avClients[$iIndex][2]

    ; Remove entry from array
        _ArrayDelete($avClients, $iIndex)

    ; Notify operator
        ToolTip("SERVER: Client disconnected:" & @CRLF & _
                "Socket: " & $hSocket & @CRLF & _
                "Connected: " & $sConnTime & @CRLF & _
                "Disconnected: " & $sDateTime & @CRLF & _
                "IP: " & $sIP, 10, 30)
    EndFunc  ;==>Disconnect
     
    * Khi chưa mã hóa, thì code chạy OK (gõ ip lên trình duyệt vd : 192.168.1.5:88). thì có nhận thông tin OK
    * Khi mã hóa với Obfuscator v2.1 vẫn chạy nhưng không nhận được thông báo.

    - Mong các cao thủ giúp đỡ có giải pháp nào không ??? Xin cảm ơn
     
    kamsamita1 thích bài này.
  2. phuong11111

    phuong11111 Thành viên
    • 18/23

    Tham gia ngày:
    7/1/17
    Bài viết:
    51
    Đã được thích:
    54
    mình ngày trc dùng winhttp xong obf thì cx bị lỗi
    xong máy bị lỗi cài lại thì lại chạy đc
     
    kamsamita1 and nokati like this.
  3. kakanet

    kakanet Thành viên năng động
    • 43/45

    Tham gia ngày:
    24/2/16
    Bài viết:
    203
    Đã được thích:
    211

    Tất cả các Obf nói chung đều lỗi khi Hàm có chứa tên Register. Do đâu ? Vì các hàm này nó đều có gọi 1 parameter là Tên của hàm nó khởi chạy cùng, hay nói cách khác là nó gọi 1 hàm khác bằng Tên dạng String, như 2 hàm này:

    _TCP_RegisterEvent($hServer, $TCP_NEWCLIENT, "NewClient")
    _TCP_RegisterEvent($hServer, $TCP_DISCONNECT, "Disconnect")

    Khi Obf thì thằng Obf nó không phân biệt được "NewClient" và "Disconnect" là hàm nên nó mã hoá 2 thằng này theo dạng string luôn => Tức là Hàm NewClient() và Disconnect() thì Obf nó đổi tên 1 kiểu, còn 2 thằng "NewClient" và "Disconnect" nó đổi tên 1 kiểu (Ở đây xin nói rõ hơn là đứa code ra Obf hắn sẽ làm theo kiểu tách string, hàm, biến ra các phần khác nhau và mã hoá về dạng tên khó đọc cũng theo kiểu khác nhau) => _TCP_RegisterEvent và _TCP_RegisterEvent nó không gọi 2 hàm đó lên được vì có còn cùng tên đâu => Chương trình chạy sai bét (^~^)

    Tương tự các hàm có tên chứa register thì các hàm khác mà có param gọi 1 hàm khác ở dạng tên string thì cũng lỗi. Một số hàm gây lỗi khi Obf khác: AdlibRegister, AdlibUnRegister, DllCallbackRegister, OnAutoItExitRegister, OnAutoItExitUnRegister và còn nhiều nữa...
     
    Chỉnh sửa cuối: 5/3/17
    kamsamita1 and nokati like this.
  4. nokati

    nokati Thành viên mới
    • 3/6

    Tham gia ngày:
    7/12/15
    Bài viết:
    5
    Đã được thích:
    4
    Vậy cách khắc phục sao khi gặp lỗi này :D, cảm ơn bạn đã phân tích
     
    kamsamita1 thích bài này.
  5. essered

    essered Thành viên
    • 18/23

    Tham gia ngày:
    11/9/16
    Bài viết:
    47
    Đã được thích:
    45
    bác phải dò đúng strings obf và sửa lại, hơi mệt
    vd:
    $A5141406208($A2AB1205C53, $A4A71200616, "NewClient")
    $A5141406208($A2AB1205C53, $A1241D03A34, "Disconnect")
     
    kamsamita1 and nokati like this.
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này

Đang tải...