能力值:
( LV5,RANK:70 )
|
-
-
2 楼
我能想到的一种方法是: 先实现你所描述的算法的c语言版然后 通过ida反汇编。 最后在优化。不过真正的汇编大牛都不会这么干的……
|
能力值:
( LV9,RANK:780 )
|
-
-
3 楼
请详细说明,最好能举个算法例子,这样大家才好帮你
|
能力值:
( LV3,RANK:30 )
|
-
-
4 楼
楼主你把你提出的问题作为编程的条件,把步骤引入到代码中,不就可以了吗?
我等下按你的思路写个delphi的算法给你看下!
|
能力值:
( LV3,RANK:30 )
|
-
-
5 楼
不知道楼主 要的是不是这个效果,我大概的写了下
var s1,s2,s3,st:string;
str:string;
i:integer;
user_len:integer;
mum:integer;
begin
//取机器码前3位以及中间两位
s1:= leftStr(edit1.Text,3);
s2:= MidStr(edit1.Text,5,2);
//*保存结果
s3:= s1+s2;
//*转换字符串到ascii,并计算ascii之和
str:= '';
for i:= 0 to length(s3) do
begin
str:=str+ inttostr(ord(s3[i]));
end;
//*获取用户名长度
user_len:= length(edit2.Text);
//*用户名*ascii总和
mum:= user_len * integer(str);
//*输出mum乘积
outputdebugstring(pchar(inttostr(mum)));
//*乘积与先前转化的数值相加
mum:= mum + integer(str);
//*输出乘积后的值
outputdebugstring(pchar(inttostr(mum)));
//*将结果转换成大写字母
st:= IntToHex(mum,2);
if length(st) <> 0 then showmessage(st);
本来想写一个变形的算法,在上班,怕时间不够!
|
能力值:
( LV6,RANK:90 )
|
-
-
6 楼
DELPHI 的我还是会写了!就是不会汇编的!
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
DELPHI写完后运行,用OD查看
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
for i:= 0 to length(s3) do
五楼的这里要从1开始吧,
|
能力值:
( LV3,RANK:30 )
|
-
-
9 楼
嗯,疏忽了。。
|
能力值:
( LV3,RANK:30 )
|
-
-
10 楼
汇编的,写出来比较累的。。 大概5-60行左右
|
能力值:
( LV9,RANK:780 )
|
-
-
11 楼
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;密码解密过程,参数:机器码,用户名,输出
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DeCode proc uses edi ebx lpCode,Ipuser,lpBuff
;把机器码前3位移到缓存
mov esi,lpCode
mov edi,lpBuff
mov ecx,3
rep movsb
;把机器码中间2位移到缓存
mov esi,lpCode+5
mov edi,lpBuff+3
mov ecx,2
rep movsb
;计算ascii之和,ASM不存在转换问题
................
参考下
|
|
|