für alle die den lieben ganzen Tag langeweile haben, habe ich hier mal eine CrackMe bzw. eine DecompileMe erstellt. Wer mir den Sourcecode vorlegt, kann 5 e*g gewinnen. Viel Glück und Spaß.
#NoTrayIcon Func Fn0001($__01) If StringLeft($__01, 2) = "0x" Then Return BinaryToString($__01) Return BinaryToString("0x" & $__01) EndFunc
Func Fn0002($__01, $__02, $__03, $__04 = -1) Local $locVar0001 = "" If $__04 = Default OR $__04 = -1 Then $locVar0001 = "(?i)" Local $locVar0002 = "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)" $__02 = StringRegExpReplace($__02, $locVar0002, "\\$1") $__03 = StringRegExpReplace($__03, $locVar0002, "\\$1") If $__02 = "" Then $__02 = "\A" If $__03 = "" Then $__03 = "\z" Local $locVar0003 = StringRegExp($__01, "(?s)" & $locVar0001 & $__02 & "(.*?)" & $__03, 3) If @error Then Return SetError(1, 0, 0) Return $locVar0003 EndFunc
Func Fn0003($__01, $__02, $__03, $__04 = 1) If $__01 <> 0 AND $__01 <> 1 Then SetError(1, 0, "") ElseIf $__02 = "" OR $__03 = "" Then SetError(1, 0, "") Else If Number($__04) <= 0 OR Int($__04) <> $__04 Then $__04 = 1 Local $locVar0001 Local $locVar0002 Local $locVar0003 Local $locVar0004 Local $locVar0005[0x00000100][2] Local $locVar0006 Local $locVar0007 Local $locVar0008 Local $locVar0009 Local $locVar0010 Local $locVar0011 Local $locVar0012 If $__01 = 1 Then For $a5c50d03d61 = 0 To $__04 Step 1 $locVar0003 = "" $locVar0002 = "" $locVar0001 = "" For $locVar0003 = 1 To StringLen($__02) If $locVar0002 = StringLen($__03) Then $locVar0002 = 1 Else $locVar0002 += 1 EndIf $locVar0001 = $locVar0001 & Chr(BitXOR(Asc(StringMid($__02, $locVar0003, 1)), Asc(StringMid($__03, $locVar0002, 1)), 0x000000ff)) Next $__02 = $locVar0001 $locVar0006 = "" $locVar0007 = 0 $locVar0008 = "" $locVar0009 = "" $locVar0010 = "" $locVar0012 = "" $locVar0011 = "" $locVar0004 = "" $locVar0005 = "" Local $locVar0005[0x00000100][2] For $locVar0006 = 0 To 0x000000ff $locVar0005[$locVar0006][1] = Asc(StringMid($__03, Mod($locVar0006, StringLen($__03)) + 1, 1)) $locVar0005[$locVar0006][0] = $locVar0006 Next For $locVar0006 = 0 To 0x000000ff $locVar0007 = Mod(($locVar0007 + $locVar0005[$locVar0006][0] + $locVar0005[$locVar0006][1]), 0x00000100) $locVar0004 = $locVar0005[$locVar0006][0] $locVar0005[$locVar0006][0] = $locVar0005[$locVar0007][0] $locVar0005[$locVar0007][0] = $locVar0004 Next For $locVar0006 = 1 To StringLen($__02) $locVar0008 = Mod(($locVar0008 + 1), 0x00000100) $locVar0009 = Mod(($locVar0009 + $locVar0005[$locVar0008][0]), 0x00000100) $locVar0010 = $locVar0005[Mod(($locVar0005[$locVar0008][0] + $locVar0005[$locVar0009][0]), 0x00000100)][0] $locVar0012 = BitXOR(Asc(StringMid($__02, $locVar0006, 1)), $locVar0010) $locVar0011 &= Hex($locVar0012, 2) Next $__02 = $locVar0011 Next Else For $a5c50d03d61 = 0 To $__04 Step 1 $locVar0007 = 0 $locVar0008 = "" $locVar0009 = "" $locVar0010 = "" $locVar0012 = "" $locVar0011 = "" $locVar0004 = "" $locVar0005 = "" Local $locVar0005[0x00000100][2] For $locVar0006 = 0 To 0x000000ff $locVar0005[$locVar0006][1] = Asc(StringMid($__03, Mod($locVar0006, StringLen($__03)) + 1, 1)) $locVar0005[$locVar0006][0] = $locVar0006 Next For $locVar0006 = 0 To 0x000000ff $locVar0007 = Mod(($locVar0007 + $locVar0005[$locVar0006][0] + $locVar0005[$locVar0006][1]), 0x00000100) $locVar0004 = $locVar0005[$locVar0006][0] $locVar0005[$locVar0006][0] = $locVar0005[$locVar0007][0] $locVar0005[$locVar0007][0] = $locVar0004 Next For $locVar0006 = 1 To StringLen($__02) Step 2 $locVar0008 = Mod(($locVar0008 + 1), 0x00000100) $locVar0009 = Mod(($locVar0009 + $locVar0005[$locVar0008][0]), 0x00000100) $locVar0010 = $locVar0005[Mod(($locVar0005[$locVar0008][0] + $locVar0005[$locVar0009][0]), 0x00000100)][0] $locVar0012 = BitXOR(Dec(StringMid($__02, $locVar0006, 2)), $locVar0010) $locVar0011 = $locVar0011 & Chr($locVar0012) Next $__02 = $locVar0011 $locVar0003 = "" $locVar0002 = "" $locVar0001 = "" For $locVar0003 = 1 To StringLen($__02) If $locVar0002 = StringLen($__03) Then $locVar0002 = 1 Else $locVar0002 += 1 EndIf $locVar0001 &= Chr(BitXOR(Asc(StringMid($__02, $locVar0003, 1)), Asc(StringMid($__03, $locVar0002, 1)), 0x000000ff)) Next $__02 = $locVar0001 Next EndIf Return $__02 EndIf EndFunc
Func Fn0004($__01, $__02, $__03 = 0) If $__03 > 0 Then $__01 = StringReplace($__01, $__02, Chr(0), $__03) $__02 = Chr(0) ElseIf $__03 < 0 Then Local $locVar0001 = StringInStr($__01, $__02, 0, $__03) If $locVar0001 Then $__01 = StringLeft($__01, $locVar0001 - 1) EndIf EndIf Return StringSplit($__01, $__02, 3) EndFunc
Func Fn0005($__01, $__02, $__03) Local $locVar0001, $locVar0002, $locVar0003 If $__01 = "" OR (NOT IsString($__01)) Then Return SetError(1, 0, $__01) ElseIf $__02 = "" OR (NOT IsString($__01)) Then Return SetError(2, 0, $__01) Else $locVar0001 = StringLen($__01) If (Abs($__03) > $locVar0001) OR (NOT IsInt($__03)) Then Return SetError(3, 0, $__01) EndIf EndIf If $__03 = 0 Then Return $__02 & $__01 ElseIf $__03 > 0 Then $locVar0002 = StringLeft($__01, $__03) $locVar0003 = StringRight($__01, $locVar0001 - $__03) Return $locVar0002 & $__02 & $locVar0003 ElseIf $__03 < 0 Then $locVar0002 = StringLeft($__01, Abs($locVar0001 + $__03)) $locVar0003 = StringRight($__01, Abs($__03)) Return $locVar0002 & $__02 & $locVar0003 EndIf EndFunc
Func Fn0006($__01) Local $locVar0001 = 0 Local $locVar0002 = 1 Local $locVar0003 = "" Local $locVar0004 For $locVar0001 = 1 To StringLen($__01) $locVar0004 = StringMid($__01, $locVar0001, 1) Select Case $locVar0002 = 1 If StringRegExp($locVar0004, "[a-zA-ZÀ-ÿšœžŸ]") Then $locVar0004 = StringUpper($locVar0004) $locVar0002 = 0 EndIf Case NOT StringRegExp($locVar0004, "[a-zA-ZÀ-ÿšœžŸ]") $locVar0002 = 1 Case Else $locVar0004 = StringLower($locVar0004) EndSelect $locVar0003 &= $locVar0004 Next Return $locVar0003 EndFunc
Func Fn0007($__01, $__02) Local $locVar0001 Select Case NOT StringIsInt($__02) SetError(1) Return "" Case StringLen($__01) < 1 SetError(1) Return "" Case $__02 <= 0 SetError(1) Return "" Case Else For $a26d0304a57 = 1 To $__02 $locVar0001 &= $__01 Next Return $locVar0001 EndSelect EndFunc
Func Fn0008($__01) Local $locVar0001 = StringLen($__01) If $locVar0001 < 1 Then Return SetError(1, 0, "") Local $locVar0002 = DllStructCreate("char[" & $locVar0001 + 1 & "]") DllStructSetData($locVar0002, 1, $__01) Local $locVar0003 = DllCall("msvcrt.dll", "ptr:cdecl", "_strrev", "ptr", DllStructGetPtr($locVar0002)) If @error OR $locVar0003[0] = 0 Then Return SetError(2, 0, "") Return DllStructGetData($locVar0002, 1) EndFunc
Func Fn0015(ByRef $__01, $__02) If NOT IsArray($__01) Then Return SetError(1, 0, 0) Local $locVar0001 = UBound($__01, 1) - 1 If NOT $locVar0001 Then $__01 = "" Return 0 EndIf If $__02 < 0 Then $__02 = 0 If $__02 > $locVar0001 Then $__02 = $locVar0001 Switch UBound($__01, 0) Case 1 For $a3211e0135f = $__02 To $locVar0001 - 1 $__01[$a3211e0135f] = $__01[$a3211e0135f + 1] Next ReDim $__01[$locVar0001] Case 2 Local $locVar0002 = UBound($__01, 2) - 1 For $a3211e0135f = $__02 To $locVar0001 - 1 For $a0971001717 = 0 To $locVar0002 $__01[$a3211e0135f][$a0971001717] = $__01[$a3211e0135f + 1][$a0971001717] Next Next ReDim $__01[$locVar0001][$locVar0002 + 1] Case Else Return SetError(3, 0, 0) EndSwitch Return $locVar0001 EndFunc
Func Fn0016(Const ByRef $__01, $__02 = "Array: ListView Display", $__03 = -1, $__04 = 0, $__05 = "", $__06 = "|", $__07 = "") If NOT IsArray($__01) Then Return SetError(1, 0, 0) Local $locVar0001 = UBound($__01, 0), $locVar0002 = UBound($__01, 1) - 1, $locVar0003 = UBound($__01, 2) - 1 If $locVar0001 > 2 Then Return SetError(2, 0, 0) If $__05 = "" Then $__05 = Chr(0x0000007c) If Fn0027($__01, $__05, 0, 0, 0, 1) <> -1 Then For $a1f91004f25 = 1 To 0x000000ff If $a1f91004f25 >= 0x00000020 AND $a1f91004f25 <= 0x0000007f Then ContinueLoop Local $locVar0004 = Fn0027($__01, Chr($a1f91004f25), 0, 0, 0, 1) If $locVar0004 = -1 Then $__05 = Chr($a1f91004f25) ExitLoop EndIf Next EndIf Local $locVar0005, $locVar0006 = 0x00000040 Local $locVar0007 = 0x000000fa Local $locVar0008 = Opt("GUIOnEventMode", 0), $locVar0009 = Opt("GUIDataSeparatorChar", $__05) If $locVar0003 < 0 Then $locVar0003 = 0 If $__04 Then $locVar0005 = $locVar0002 $locVar0002 = $locVar0003 $locVar0003 = $locVar0005 EndIf If $locVar0003 > $locVar0007 Then $locVar0003 = $locVar0007 If $__03 < 1 Then $__03 = $locVar0002 If $locVar0002 > $__03 Then $locVar0002 = $__03 If $__07 = "" Then $__07 = "Row " For $a3211e0135f = 0 To $locVar0003 $__07 &= $__05 & "Col " & $a3211e0135f Next EndIf Local $locVar0010[$locVar0002 + 1] For $a3211e0135f = 0 To $locVar0002 $locVar0010[$a3211e0135f] = "[" & $a3211e0135f & "]" For $a0971001717 = 0 To $locVar0003 If $locVar0001 = 1 Then If $__04 Then $locVar0005 = $__01[$a0971001717] Else $locVar0005 = $__01[$a3211e0135f] EndIf Else If $__04 Then $locVar0005 = $__01[$a0971001717][$a3211e0135f] Else $locVar0005 = $__01[$a3211e0135f][$a0971001717] EndIf EndIf $locVar0005 = StringReplace($locVar0005, $__05, $__06, 0, 1) $locVar0010[$a3211e0135f] &= $__05 & $locVar0005 $locVar0005 = StringLen($locVar0005) If $locVar0005 > $locVar0006 Then $locVar0006 = $locVar0005 Next Next $locVar0006 += 1 Local Const $locVar0011 = 0x00000066 Local Const $locVar0012 = 0x00000040 Local Const $locVar0013 = 0x00000200 Local Const $locVar0014 = 2 Local Const $locVar0015 = 4 Local Const $locVar0016 = -3 Local Const $locVar0017 = 4 Local Const $locVar0018 = 1 Local Const $locVar0019 = (0x00001000 + 0x0000001d) Local Const $locVar0020 = (0x00001000 + 4) Local Const $locVar0021 = (0x00001000 + 0x0000002c) Local Const $locVar0022 = (0x00001000 + 0x0000004d) Local Const $locVar0023 = (0x00001000 + 0x00000036) Local Const $locVar0024 = (0x00001000 + 0x0000004c) Local Const $locVar0025 = 0x00000020 Local Const $locVar0026 = 1 Local Const $locVar0027 = 8 Local Const $locVar0028 = 0x00000200 Local Const $locVar0029 = 0x00010000 Local Const $locVar0030 = 0x00020000 Local Const $locVar0031 = 0x00040000 Local Const $locVar0032 = "int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns" Local $locVar0033 = BitOR($locVar0018, $locVar0017) Local $locVar0034 = DllStructCreate("wchar Text[" & $locVar0006 & "]"), $locVar0035 = DllStructGetPtr($locVar0034) Local $locVar0036 = DllStructCreate($locVar0032), $locVar0037 = DllStructGetPtr($locVar0036) DllStructSetData($locVar0036, "Param", 0) DllStructSetData($locVar0036, "Text", $locVar0035) DllStructSetData($locVar0036, "TextMax", $locVar0006) Local $locVar0038 = 0x00000280, $locVar0039 = 0x000001e0 Local $locVar0040 = GUICreate($__02, $locVar0038, $locVar0039, Default, Default, BitOR($locVar0031, $locVar0030, $locVar0029)) Local $locVar0041 = WinGetClientSize($locVar0040) Local $locVar0042 = GUICtrlCreateListView($__07, 0, 0, $locVar0041[0], $locVar0041[1] - 0x0000001a, $locVar0027) Local $locVar0043 = GUICtrlCreateButton("Copy Selected", 3, $locVar0041[1] - 0x00000017, $locVar0041[0] - 6, 0x00000014) GUICtrlSetResizing($locVar0042, $locVar0011) GUICtrlSetResizing($locVar0043, $locVar0014 + $locVar0015 + $locVar0012 + $locVar0013) GUICtrlSendMsg($locVar0042, $locVar0023, $locVar0026, $locVar0026) GUICtrlSendMsg($locVar0042, $locVar0023, $locVar0025, $locVar0025) GUICtrlSendMsg($locVar0042, $locVar0023, $locVar0028, $locVar0028) Local $locVar0044 For $a3211e0135f = 0 To $locVar0002 If GUICtrlCreateListViewItem($locVar0010[$a3211e0135f], $locVar0042) = 0 Then $locVar0044 = StringSplit($locVar0010[$a3211e0135f], $__05) DllStructSetData($locVar0034, "Text", $locVar0044[1]) DllStructSetData($locVar0036, "Item", $a3211e0135f) DllStructSetData($locVar0036, "SubItem", 0) DllStructSetData($locVar0036, "Mask", $locVar0033) GUICtrlSendMsg($locVar0042, $locVar0022, 0, $locVar0037) DllStructSetData($locVar0036, "Mask", $locVar0018) For $a0971001717 = 2 To $locVar0044[0] DllStructSetData($locVar0034, "Text", $locVar0044[$a0971001717]) DllStructSetData($locVar0036, "SubItem", $a0971001717 - 1) GUICtrlSendMsg($locVar0042, $locVar0024, 0, $locVar0037) Next EndIf Next $locVar0038 = 0 For $a3211e0135f = 0 To $locVar0003 + 1 $locVar0038 += GUICtrlSendMsg($locVar0042, $locVar0019, $a3211e0135f, 0) Next If $locVar0038 < 0x000000fa Then $locVar0038 = 0x000000e6 $locVar0038 += 0x00000014 If $locVar0038 > @DesktopWidth Then $locVar0038 = @DesktopWidth - 0x00000064 WinMove($locVar0040, "", (@DesktopWidth - $locVar0038) / 2, Default, $locVar0038) GUISetState(@SW_SHOW, $locVar0040) While 1 Switch GUIGetMsg() Case $locVar0016 ExitLoop Case $locVar0043 Local $locVar0045 = "" Local $locVar0046[1] = [0] For $a3211e0135f = 0 To GUICtrlSendMsg($locVar0042, $locVar0020, 0, 0) If GUICtrlSendMsg($locVar0042, $locVar0021, $a3211e0135f, 2) Then $locVar0046[0] += 1 ReDim $locVar0046[$locVar0046[0] + 1] $locVar0046[$locVar0046[0]] = $a3211e0135f EndIf Next If NOT $locVar0046[0] Then For $a2e32305d63 In $locVar0010 $locVar0045 &= $a2e32305d63 & @CRLF Next Else For $a3211e0135f = 1 To UBound($locVar0046) - 1 $locVar0045 &= $locVar0010[$locVar0046[$a3211e0135f]] & @CRLF Next EndIf ClipPut($locVar0045) EndSwitch WEnd GUIDelete($locVar0040) Opt("GUIOnEventMode", $locVar0008) Opt("GUIDataSeparatorChar", $locVar0009) Return 1 EndFunc
Func Fn0018(ByRef $__01, $__02, $__03 = "") If NOT IsArray($__01) Then Return SetError(1, 0, 0) If UBound($__01, 0) <> 1 Then Return SetError(2, 0, 0) Local $locVar0001 = UBound($__01) + 1 ReDim $__01[$locVar0001] For $a3211e0135f = $locVar0001 - 1 To $__02 + 1 Step -1 $__01[$a3211e0135f] = $__01[$a3211e0135f - 1] Next $__01[$__02] = $__03 Return $locVar0001 EndFunc
Func Fn0019(Const ByRef $__01, $__02 = 0, $__03 = 0, $__04 = 0) Local $locVar0001 = Fn0020($__01, $__02, $__03, $__04) If @error Then Return SetError(@error, 0, "") Return $__01[$locVar0001] EndFunc
Func Fn0020(Const ByRef $__01, $__02 = 0, $__03 = 0, $__04 = 0) If NOT IsArray($__01) OR UBound($__01, 0) <> 1 Then Return SetError(1, 0, -1) If UBound($__01, 0) <> 1 Then Return SetError(3, 0, -1) Local $locVar0001 = UBound($__01) - 1 If $__04 < 1 OR $__04 > $locVar0001 Then $__04 = $locVar0001 If $__03 < 0 Then $__03 = 0 If $__03 > $__04 Then Return SetError(2, 0, -1) Local $locVar0002 = $__03 If $__02 Then For $a3211e0135f = $__03 To $__04 If Number($__01[$locVar0002]) < Number($__01[$a3211e0135f]) Then $locVar0002 = $a3211e0135f Next Else For $a3211e0135f = $__03 To $__04 If $__01[$locVar0002] < $__01[$a3211e0135f] Then $locVar0002 = $a3211e0135f Next EndIf Return $locVar0002 EndFunc
Func Fn0021(Const ByRef $__01, $__02 = 0, $__03 = 0, $__04 = 0) Local $locVar0001 = Fn0022($__01, $__02, $__03, $__04) If @error Then Return SetError(@error, 0, "") Return $__01[$locVar0001] EndFunc
Func Fn0022(Const ByRef $__01, $__02 = 0, $__03 = 0, $__04 = 0) If NOT IsArray($__01) Then Return SetError(1, 0, -1) If UBound($__01, 0) <> 1 Then Return SetError(3, 0, -1) Local $locVar0001 = UBound($__01) - 1 If $__04 < 1 OR $__04 > $locVar0001 Then $__04 = $locVar0001 If $__03 < 0 Then $__03 = 0 If $__03 > $__04 Then Return SetError(2, 0, -1) Local $locVar0002 = $__03 If $__02 Then For $a3211e0135f = $__03 To $__04 If Number($__01[$locVar0002]) > Number($__01[$a3211e0135f]) Then $locVar0002 = $a3211e0135f Next Else For $a3211e0135f = $__03 To $__04 If $__01[$locVar0002] > $__01[$a3211e0135f] Then $locVar0002 = $a3211e0135f Next EndIf Return $locVar0002 EndFunc
Func Fn0023(ByRef $__01, $__02 = "") If NOT IsArray($__01) Then Return SetError(1, 0, 0) If UBound($__01, 0) <> 1 Then Return SetError(2, 0, 0) Local $locVar0001 = UBound($__01), $locVar0002 = 1, $locVar0003[$locVar0001], $locVar0004[1], $locVar0005 = 1 For $a3211e0135f = 0 To $locVar0001 - 1 $locVar0003[$a3211e0135f] = $a3211e0135f Next For $a3211e0135f = $locVar0001 To 1 Step -1 $locVar0002 *= $a3211e0135f Next ReDim $locVar0004[$locVar0002 + 1] $locVar0004[0] = $locVar0002 Fn0036($__01, 0, $locVar0001, $__02, $locVar0003, $locVar0004, $locVar0005) Return $locVar0004 EndFunc
Func Fn0024(ByRef $__01) If (NOT IsArray($__01)) Then Return SetError(1, 0, "") If UBound($__01, 0) <> 1 Then Return SetError(2, 0, "") Local $locVar0001 = UBound($__01) - 1, $locVar0002 = $__01[$locVar0001] If NOT $locVar0001 Then $__01 = "" Else ReDim $__01[$locVar0001] EndIf Return $locVar0002 EndFunc
Func Fn0025(ByRef $__01, $__02, $__03 = 0) If (NOT IsArray($__01)) Then Return SetError(1, 0, 0) If UBound($__01, 0) <> 1 Then Return SetError(3, 0, 0) Local $locVar0001 = UBound($__01) - 1 If IsArray($__02) Then Local $locVar0002 = UBound($__02) If ($locVar0002 - 1) > $locVar0001 Then Return SetError(2, 0, 0) If $__03 Then For $a3211e0135f = $locVar0001 To $locVar0002 Step -1 $__01[$a3211e0135f] = $__01[$a3211e0135f - $locVar0002] Next For $a3211e0135f = 0 To $locVar0002 - 1 $__01[$a3211e0135f] = $__02[$a3211e0135f] Next Else For $a3211e0135f = 0 To $locVar0001 - $locVar0002 $__01[$a3211e0135f] = $__01[$a3211e0135f + $locVar0002] Next For $a3211e0135f = 0 To $locVar0002 - 1 $__01[$a3211e0135f + $locVar0001 - $locVar0002 + 1] = $__02[$a3211e0135f] Next EndIf Else If $__03 Then For $a3211e0135f = $locVar0001 To 1 Step -1 $__01[$a3211e0135f] = $__01[$a3211e0135f - 1] Next $__01[0] = $__02 Else For $a3211e0135f = 0 To $locVar0001 - 1 $__01[$a3211e0135f] = $__01[$a3211e0135f + 1] Next $__01[$locVar0001] = $__02 EndIf EndIf Return 1 EndFunc
Func Fn0026(ByRef $__01, $__02 = 0, $__03 = 0) If NOT IsArray($__01) Then Return SetError(1, 0, 0) If UBound($__01, 0) <> 1 Then Return SetError(3, 0, 0) Local $locVar0001, $locVar0002 = UBound($__01) - 1 If $__03 < 1 OR $__03 > $locVar0002 Then $__03 = $locVar0002 If $__02 < 0 Then $__02 = 0 If $__02 > $__03 Then Return SetError(2, 0, 0) For $a3211e0135f = $__02 To Int(($__02 + $__03 - 1) / 2) $locVar0001 = $__01[$a3211e0135f] $__01[$a3211e0135f] = $__01[$__03] $__01[$__03] = $locVar0001 $__03 -= 1 Next Return 1 EndFunc
Func Fn0027(Const ByRef $__01, $__02, $__03 = 0, $__04 = 0, $__05 = 0, $__06 = 0, $__07 = 1, $__08 = -1) If NOT IsArray($__01) Then Return SetError(1, 0, -1) If UBound($__01, 0) > 2 OR UBound($__01, 0) < 1 Then Return SetError(2, 0, -1) Local $locVar0001 = UBound($__01) - 1 If $__04 < 1 OR $__04 > $locVar0001 Then $__04 = $locVar0001 If $__03 < 0 Then $__03 = 0 If $__03 > $__04 Then Return SetError(4, 0, -1) Local $locVar0002 = 1 If NOT $__07 Then Local $locVar0003 = $__03 $__03 = $__04 $__04 = $locVar0003 $locVar0002 = -1 EndIf Switch UBound($__01, 0) Case 1 If NOT $__06 Then If NOT $__05 Then For $a3211e0135f = $__03 To $__04 Step $locVar0002 If $__01[$a3211e0135f] = $__02 Then Return $a3211e0135f Next Else For $a3211e0135f = $__03 To $__04 Step $locVar0002 If $__01[$a3211e0135f] == $__02 Then Return $a3211e0135f Next EndIf Else For $a3211e0135f = $__03 To $__04 Step $locVar0002 If StringInStr($__01[$a3211e0135f], $__02, $__05) > 0 Then Return $a3211e0135f Next EndIf Case 2 Local $locVar0004 = UBound($__01, 2) - 1 If $__08 > $locVar0004 Then $__08 = $locVar0004 If $__08 < 0 Then $__08 = 0 Else $locVar0004 = $__08 EndIf For $a0971001717 = $__08 To $locVar0004 If NOT $__06 Then If NOT $__05 Then For $a3211e0135f = $__03 To $__04 Step $locVar0002 If $__01[$a3211e0135f][$a0971001717] = $__02 Then Return $a3211e0135f Next Else For $a3211e0135f = $__03 To $__04 Step $locVar0002 If $__01[$a3211e0135f][$a0971001717] == $__02 Then Return $a3211e0135f Next EndIf Else For $a3211e0135f = $__03 To $__04 Step $locVar0002 If StringInStr($__01[$a3211e0135f][$a0971001717], $__02, $__05) > 0 Then Return $a3211e0135f Next EndIf Next Case Else Return SetError(7, 0, -1) EndSwitch Return SetError(6, 0, -1) EndFunc
Func Fn0028(ByRef $__01, $__02 = 0, $__03 = 0, $__04 = 0, $__05 = 0) If NOT IsArray($__01) Then Return SetError(1, 0, 0) Local $locVar0001 = UBound($__01) - 1 If $__04 < 1 OR $__04 > $locVar0001 Then $__04 = $locVar0001 If $__03 < 0 Then $__03 = 0 If $__03 > $__04 Then Return SetError(2, 0, 0) Switch UBound($__01, 0) Case 1 Fn0029($__01, $__03, $__04) If $__02 Then Fn0026($__01, $__03, $__04) Case 2 Local $locVar0002 = UBound($__01, 2) - 1 If $__05 > $locVar0002 Then Return SetError(3, 0, 0) If $__02 Then $__02 = -1 Else $__02 = 1 EndIf Fn0030($__01, $__02, $__03, $__04, $__05, $locVar0002) Case Else Return SetError(4, 0, 0) EndSwitch Return 1 EndFunc
Func Fn0029(ByRef $__01, ByRef $__02, ByRef $__03) If $__03 <= $__02 Then Return Local $locVar0001 If ($__03 - $__02) < 15 Then Local $locVar0002 For $a3211e0135f = $__02 + 1 To $__03 $locVar0001 = $__01[$a3211e0135f] If IsNumber($locVar0001) Then For $a0971001717 = $a3211e0135f - 1 To $__02 Step -1 $locVar0002 = $__01[$a0971001717] If ($locVar0001 >= $locVar0002 AND IsNumber($locVar0002)) OR (NOT IsNumber($locVar0002) AND StringCompare($locVar0001, $locVar0002) >= 0) Then ExitLoop $__01[$a0971001717 + 1] = $locVar0002 Next Else For $a0971001717 = $a3211e0135f - 1 To $__02 Step -1 If (StringCompare($locVar0001, $__01[$a0971001717]) >= 0) Then ExitLoop $__01[$a0971001717 + 1] = $__01[$a0971001717] Next EndIf $__01[$a0971001717 + 1] = $locVar0001 Next Return EndIf Local $locVar0003 = $__02, $locVar0004 = $__03, $locVar0005 = $__01[Int(($__02 + $__03) / 2)], $locVar0006 = IsNumber($locVar0005) Do If $locVar0006 Then While ($__01[$locVar0003] < $locVar0005 AND IsNumber($__01[$locVar0003])) OR (NOT IsNumber($__01[$locVar0003]) AND StringCompare($__01[$locVar0003], $locVar0005) < 0) $locVar0003 += 1 WEnd While ($__01[$locVar0004] > $locVar0005 AND IsNumber($__01[$locVar0004])) OR (NOT IsNumber($__01[$locVar0004]) AND StringCompare($__01[$locVar0004], $locVar0005) > 0) $locVar0004 -= 1 WEnd Else While (StringCompare($__01[$locVar0003], $locVar0005) < 0) $locVar0003 += 1 WEnd While (StringCompare($__01[$locVar0004], $locVar0005) > 0) $locVar0004 -= 1 WEnd EndIf If $locVar0003 <= $locVar0004 Then $locVar0001 = $__01[$locVar0003] $__01[$locVar0003] = $__01[$locVar0004] $__01[$locVar0004] = $locVar0001 $locVar0003 += 1 $locVar0004 -= 1 EndIf Until $locVar0003 > $locVar0004 Fn0029($__01, $__02, $locVar0004) Fn0029($__01, $locVar0003, $__03) EndFunc
Func Fn0030(ByRef $__01, ByRef $__02, ByRef $__03, ByRef $__04, ByRef $__05, ByRef $__06) If $__04 <= $__03 Then Return Local $locVar0001, $locVar0002 = $__03, $locVar0003 = $__04, $locVar0004 = $__01[Int(($__03 + $__04) / 2)][$__05], $locVar0005 = IsNumber($locVar0004) Do If $locVar0005 Then While ($__02 * ($__01[$locVar0002][$__05] - $locVar0004) < 0 AND IsNumber($__01[$locVar0002][$__05])) OR (NOT IsNumber($__01[$locVar0002][$__05]) AND $__02 * StringCompare($__01[$locVar0002][$__05], $locVar0004) < 0) $locVar0002 += 1 WEnd While ($__02 * ($__01[$locVar0003][$__05] - $locVar0004) > 0 AND IsNumber($__01[$locVar0003][$__05])) OR (NOT IsNumber($__01[$locVar0003][$__05]) AND $__02 * StringCompare($__01[$locVar0003][$__05], $locVar0004) > 0) $locVar0003 -= 1 WEnd Else While ($__02 * StringCompare($__01[$locVar0002][$__05], $locVar0004) < 0) $locVar0002 += 1 WEnd While ($__02 * StringCompare($__01[$locVar0003][$__05], $locVar0004) > 0) $locVar0003 -= 1 WEnd EndIf If $locVar0002 <= $locVar0003 Then For $a3211e0135f = 0 To $__06 $locVar0001 = $__01[$locVar0002][$a3211e0135f] $__01[$locVar0002][$a3211e0135f] = $__01[$locVar0003][$a3211e0135f] $__01[$locVar0003][$a3211e0135f] = $locVar0001 Next $locVar0002 += 1 $locVar0003 -= 1 EndIf Until $locVar0002 > $locVar0003 Fn0030($__01, $__02, $__03, $locVar0003, $__05, $__06) Fn0030($__01, $__02, $locVar0002, $__04, $__05, $__06) EndFunc
Func Fn0032(Const ByRef $__01, $__02 = 0, $__03 = 0) Local $locVar0001 = Fn0033($__01, @CR, $__02, $__03) If @error Then Return SetError(@error, 0, 0) Return ClipPut($locVar0001) EndFunc
Func Fn0033(Const ByRef $__01, $__02 = "|", $__03 = 0, $__04 = 0) If NOT IsArray($__01) Then Return SetError(1, 0, "") If UBound($__01, 0) <> 1 Then Return SetError(3, 0, "") Local $locVar0001, $locVar0002 = UBound($__01) - 1 If $__04 < 1 OR $__04 > $locVar0002 Then $__04 = $locVar0002 If $__03 < 0 Then $__03 = 0 If $__03 > $__04 Then Return SetError(2, 0, "") For $a3211e0135f = $__03 To $__04 $locVar0001 &= $__01[$a3211e0135f] & $__02 Next Return StringTrimRight($locVar0001, StringLen($__02)) EndFunc
Func Fn0034(ByRef $__01, $__02, $__03 = 0, $__04 = 0, $__05 = 0) If NOT IsArray($__01) Then Return SetError(1, 0, 0) If UBound($__01, 0) <> 1 Then Return SetError(2, 0, 0) Local $locVar0001 = UBound($__01) - 1 If $__05 < 1 OR $__05 > $locVar0001 Then $__05 = $locVar0001 If $__04 < 0 Then $__04 = 0 If $__04 > $__05 Then Return SetError(5, 0, 0) If $__03 Then For $a3211e0135f = $__04 To $__05 $__01[$a3211e0135f] = StringTrimRight($__01[$a3211e0135f], $__02) Next Else For $a3211e0135f = $__04 To $__05 $__01[$a3211e0135f] = StringTrimLeft($__01[$a3211e0135f], $__02) Next EndIf Return 1 EndFunc
Func Fn0035($__01, $__02 = 1, $__03 = 0, $__04 = 0, $__05 = "|") Local $locVar0001 If $__05 = "|" Then $__05 = Chr(01) If NOT IsArray($__01) Then Return SetError(1, 0, 0) If NOT $__02 > 0 Then Return SetError(3, 0, 0) Else $locVar0001 = UBound($__01, 1) If @error Then Return SetError(3, 0, 0) If $__02 > 1 Then Local $locVar0002[1] For $a3211e0135f = 0 To $locVar0001 - 1 Fn0010($locVar0002, $__01[$a3211e0135f][$__02 - 1]) Next Fn0015($locVar0002, 0) Else If UBound($__01, 0) = 1 Then Dim $locVar0002[1] For $a3211e0135f = 0 To $locVar0001 - 1 Fn0010($locVar0002, $__01[$a3211e0135f]) Next Fn0015($locVar0002, 0) Else Dim $locVar0002[1] For $a3211e0135f = 0 To $locVar0001 - 1 Fn0010($locVar0002, $__01[$a3211e0135f][$__02 - 1]) Next Fn0015($locVar0002, 0) EndIf EndIf EndIf Local $locVar0003 For $a0173400039 = $__03 To UBound($locVar0002) - 1 If NOT StringInStr($__05 & $locVar0003, $__05 & $locVar0002[$a0173400039] & $__05, $__04) Then $locVar0003 &= $locVar0002[$a0173400039] & $__05 Next If $locVar0003 Then $locVar0002 = StringSplit(StringTrimRight($locVar0003, StringLen($__05)), $__05, 1) Return $locVar0002 EndIf Return SetError(2, 0, 0) EndFunc
Func Fn0036(ByRef $__01, $__02, $__03, $__04, ByRef $__05, ByRef $__06, ByRef $__07) If $__02 == $__03 - 1 Then For $a3211e0135f = 0 To $__03 - 1 $__06[$__07] &= $__01[$__05[$a3211e0135f]] & $__04 Next If $__04 <> "" Then $__06[$__07] = StringTrimRight($__06[$__07], 1) $__07 += 1 Else Local $locVar0001 For $a3211e0135f = $__02 To $__03 - 1 $locVar0001 = $__05[$a3211e0135f] $__05[$a3211e0135f] = $__05[$__02] $__05[$__02] = $locVar0001 Fn0036($__01, $__02 + 1, $__03, $__04, $__05, $__06, $__07) $__05[$__02] = $__05[$a3211e0135f] $__05[$a3211e0135f] = $locVar0001 Next EndIf EndFunc
Func Fn0037($__01, $__02) Local $locVar0001 = 1 For $a3211e0135f = $__02 To 1 Step -1 $locVar0001 *= ($__01 / $a3211e0135f) $__01 -= 1 Next Return Round($locVar0001) EndFunc
Func Fn0038($__01, $__02, ByRef $__03, $__04, ByRef $__05) If $__03 == $__04 Then $__03 -= 1 Return EndIf Local $locVar0001 = $__02 - 1 While $__05[$locVar0001] == $__01 - $__02 + $locVar0001 $locVar0001 -= 1 WEnd $__05[$locVar0001] += 1 For $a0971001717 = $locVar0001 + 1 To $__02 - 1 $__05[$a0971001717] = $__05[$locVar0001] + $a0971001717 - $locVar0001 Next $__03 -= 1 EndFunc
[C#] CrackMe - likeadj 04/18/2012 - .NET Languages - 15 Replies Hallo Elitepvpers,
Ich hatte einfach was in C# gemacht und kam auf die Idee, mal
ein CrackMe zu machen.
Ich habe 2 Level gemacht: CrackMe - I (leicht) und CrackMe - II (schwer).
Das CrackMe - II ist obfuscated.
- Mich interessiert es einfach nur, wer hier so cracken kann..
CrackMe - Level I
Klicke mich um einen Screenshot anzuschauen..
Tutorial Ollydbg + Crackme 03/18/2010 - Tutorials - 19 Replies Was ist OllyDbg?
OllyDbg ist ein von Oleh Yuschuk entwickelter 32-Bit-Debugger für Windows-Betriebssysteme. Hauptsächlich kann OllyDbg zur binären Codeanalyse verwendet werden, um beispielsweise eine Fehlerbereinigung von Programmen durchzuführen.
OllyDbg arbeitet auf Ring 3-Ebene und zeichnet sich durch folgende Features aus:
* Debugging von Multithreadprogrammen
* Anhängen an laufende Prozesse
* Konfigurierbarer Disassembler mit Unterstützung der Formate MASM und IDEAL
* MMX,...
Tutorial Ollydbg und Crackme 06/03/2009 - Tutorials - 4 Replies Was ist OllyDbg?
OllyDbg ist ein von Oleh Yuschuk entwickelter 32-Bit-Debugger für Windows-Betriebssysteme. Hauptsächlich kann OllyDbg zur binären Codeanalyse verwendet werden, um beispielsweise eine Fehlerbereinigung von Programmen durchzuführen.
OllyDbg arbeitet auf Ring 3-Ebene und zeichnet sich durch folgende Features aus:
* Debugging von Multithreadprogrammen
* Anhängen an laufende Prozesse
* Konfigurierbarer Disassembler mit Unterstützung der Formate MASM und IDEAL
* MMX,...