画出来的 .NET CrackMe
这是上古时期一位大神的 CM,注册码是画出来的,很有创意的一个想法。只做了简单的加密,没有 VM
放假了,大家一起来画画吧~~ 本帖最后由 卡卡超人 于 2022-12-26 12:24 编辑
分区
(125, 125)
(25, 25)
(25, 225)
(225, 225)
(225, 25)
五个点不连通
(75, 25)
(25, 75)
两个点连通
(175, 225)
(225, 175)
两个点连通
看Reg1和Reg2 > 这是上古时期一位大神的 CM
意思这是十几年前的CM?
这个程序的代码是加密的,运行时解密到内存,这就使得每次代码在内存中的位置都不一样。同时,这个程序不知用了什么技术,使OD无法检测程序入口,也无法检测主代码解密前程序的堆栈调用情况。这个程序可能需要静态破解。 感谢分享 SoftCracker 发表于 2022-12-27 09:19
> 这是上古时期一位大神的 CM
意思这是十几年前的CM?
看标题,2011 年的
Private Sub Button1_Click(sender As Object, e As EventArgs)
Dim num As Integer = 0
Do
IL_02:
Dim arg_09_0 As Integer = 15
While True
Dim expr_0A As Integer = arg_09_0 Xor 814828136
Dim num2 As UInteger = CUInt(expr_0A)
' The following expression was wrapped in a checked-statement
Dim num3 As Integer
num3 += 1
arg_09_0 = 11
Dim arg_1E1_0 As Object = 1
Continue While
Select Case expr_0A Mod 17
Case 0
GoTo IL_02
Case 1
Dim num3 As Integer
Me.b(num, num3) = False
Dim num4 As UInteger = num2
Dim array As UInteger() = New UInteger(5 - 1) {}
array(0) = 411U
array(1) = 4294967191U + array(0)
array(2) = 832U - array(1) - array(0)
array(3) = 310U + array(2) + array(1) - array(0)
array(4) = 4294966671U + array(3) - array(2) + array(1) + array(0)
Dim num5 As UInteger = num4 / array(4)
arg_09_0 = CInt((num5 - 2743528U))
Dim arg_486_0 As Object = 1
Continue While
Case 2
Dim num3 As Integer
Me.b(num, num3) = True
arg_09_0 = 10
Dim arg_640_0 As Object = 1
Continue While
Case 3
Dim array As UInteger()
Dim num6 As UInteger
' The following expression was wrapped in a checked-statement
num += 1
num6 = num2
array = New UInteger(5 - 1) {}
array(0) = 255U
array(1) = 14U + array(0)
array(2) = 4294966877U + array(1) + array(0)
array(3) = 632U + array(2) - array(1) - array(0)
array(4) = 301U + array(3) - array(2) - array(1) + array(0)
Dim num7 As UInteger = num6 / array(4)
arg_09_0 = CInt((num7 - 2062843U))
Dim arg_335_0 As Object = 1
Continue While
Case 4
Interaction.MsgBox(ChrW(27880) & ChrW(20876) & ChrW(25104) & ChrW(21151), MsgBoxStyle.Information, ChrW(24685) & ChrW(21916))
Dim num8 As UInteger = num2
Dim array As UInteger() = New UInteger(4 - 1) {}
array(0) = 382U
array(1) = 4294967253U + array(0)
array(2) = 103U - array(1) + array(0)
array(3) = 210U - array(2) - array(1) + array(0)
Dim num9 As UInteger = num8 / array(3)
arg_09_0 = CInt((num9 - 7615216U))
Dim arg_55B_0 As Object = 1
Continue While
Case 5
Interaction.MsgBox(ChrW(27880) & ChrW(20876) & ChrW(22833) & ChrW(36133), MsgBoxStyle.Information, ChrW(32487) & ChrW(32493) & ChrW(21162) & ChrW(21147))
arg_09_0 = 2
Dim arg_D6_0 As Object = 1
Continue While
Case 6
Return
Case 7
Dim num3 As Integer
Dim pixel As Color = Me.bit.GetPixel(num, num3)
arg_09_0 = 12
Dim arg_1B2_0 As Object = 1
Continue While
Case 8
Case 9
Dim num3 As Integer
arg_09_0 = CInt(((If((num3 <= 250), 494443U, 494423U)) Xor num2 / 1648U))
Dim arg_124_0 As Object = 1
Continue While
Case 10
Dim pixel As Color
arg_09_0 = CInt(((If((Operators.CompareString(pixel.Name, "ff000000", False) <> 0), 510587U, 510588U)) Xor num2 / 1596U))
Dim arg_23C_0 As Object = 1
Continue While
Case 11
arg_09_0 = CInt(((If((num > 250), 424395U, 424394U)) Xor num2 / 1920U))
Dim arg_383_0 As Object = 1
Continue While
Case 12
arg_09_0 = CInt(((If((Me.Reg1() And Me.Reg2()), 467239U, 467238U)) Xor num2 / 1744U))
Dim arg_179_0 As Object = 1
Continue While
Case 13
Dim num3 As Integer = 0
arg_09_0 = 9
Dim arg_99_0 As Object = 1
Continue While
Case 14
Dim num10 As UInteger = num2 / 1900U
arg_09_0 = CInt((num10 - 428854U))
Dim arg_599_0 As Object = 1
Continue While
Case 15
Dim num11 As UInteger = num2 / 1884U
arg_09_0 = CInt((num11 - 432489U))
Dim arg_5D7_0 As Object = 1
Continue While
Case 16
ProjectData.EndApp()
arg_09_0 = 8
Dim arg_607_0 As Object = 1
Continue While
End Select
Exit While
End While
Loop While 1 Is Nothing
End Sub
没看懂这代码在干啥 还没使用,但感觉很实用的样子,谢谢楼主无私分享 大佬就是大佬 感谢楼主分享 luliucheng 发表于 2022-12-25 13:14
这个程序的代码是加密的,运行时解密到内存,这就使得每次代码在内存中的位置都不一样。同时,这个程序不知 ...
分析很明确,普通的dump工具也dump不出来,dnspy报错
挺有意思的 云在天 发表于 2022-12-25 15:33
挺有意思的
期待总版主画作 {:301_998:} 厉害了,高手