首页
社区
课程
招聘
请教,如何用VB写注册机
2006-2-4 15:49 5221

请教,如何用VB写注册机

2006-2-4 15:49
5221
分析一软件已得到注册分析内容,可使用VB写注册机无法进行下去,以前看到过使用VB写汇编的文章,请大侠指教.

push ebx
mov ebx,dword ptr ss:[esp+C]
push ebp
push esi
push edi
xor esi,esi

mov edi,dword ptr ds:[ebx]                ;取输入数据
mov eax,dword ptr ds:[esi+3792E8]        ;取第一个数据
xor eax,edi                        ;异或
add esi,4                                ;设置下一个数据位置
mov ecx,eax                        ;异或结果给ecx
shr eax,10                                ;高4位给eax
and ecx,0FFFF                        ;低4位给ecx
mov edx,eax                        ;
imul eax,edx                        ;高4位平方
mov ebp,ecx                        ;
imul ebp,ecx                        ;低4位平方
imul ecx,edx                        ;N=低4位平方乘以高4位
not eax                                ;高4位平方结果取非
add eax,ebp                        ;加低4位平方
mov ebp,eax                        ;结果给ebp
shr ebp,10                                ;
shl eax,10                                ;
or ebp,eax                                ;M=高4位和低4位互换
mov eax,dword ptr ds:[esi+3792F4]        ;取第二个数据
xor ebp,eax                        ;ebp=M异或eax
mov eax,dword ptr ss:[esp+14]                ;取输入数据地址
add ebp,ecx                        ;ebp=ebp+N
mov edx,dword ptr ds:[eax]
xor ebp,edx                        ;ebp=ebp异或输入数据
cmp esi,10

mov dword ptr ds:[ebx],ebp        ;结果放到输入数据地址,循环计算
mov dword ptr ds:[eax],edi        ;刷新输入数据
jb short CheckKey.0037473A

003792E8  87 68 A9 BA 2C D3 17 1E  ?┖,?
003792F0  3C DC BC 03 B2 D1 33 0F  <芗 惭3
003792F8  58 3B 0F 4B C3 F0 74 E8  X; K灭t
00379300  A6 C5 55 69 46 CA A7 55  εUiF失U

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
打赏
分享
最新回复 (2)
雪    币: 1187
活跃值: (432)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dfui 2006-2-5 10:25
2
0
会这个就会写吧.强人呀.用汇编写.
雪    币: 6051
活跃值: (1441)
能力值: ( LV15,RANK:1473 )
在线值:
发帖
回帖
粉丝
lelfei 23 2006-2-5 14:19
3
0
dim lNum(17) as long '数据数组,最后一个为0
dim lInput as long '输入数据

dim i as long,a as long,b as long,c as long,s as string
dim m as long,n as long

c=lInput
for i=1 to 16
    c=c xor lnum(i)    '异或
    s=chex(s)
    a=clng("&H" & mid(s,len(s)-4))  '高4位
    b=clng("&H" & right(s,4))       '低4位
    n=b*b+a
    s=chex((not (a*a))+b*b)
    s=mid("00000000",1,8-len(s)) & s '补足8位
    m=right(s,4) & left(s,4)         '高低4位互换
    c=(m xor lNum(i+1))+n xor c
next

只是随手写了一下,可能不完全对,你试一下吧
不知道在Vb里取反直接用Not行不行,要是不行直接添个负号应该行吧?
游客
登录 | 注册 方可回帖
返回