首页
社区
课程
招聘
求一个汇编的算法源码!
发表于: 2009-11-6 19:37 5039

求一个汇编的算法源码!

2009-11-6 19:37
5039
1.机器码有8位数,先取机器码的前三位以及中间两位,然后转化为数值;
2.把刚刚获取的的字符和用户名连接起来,计算他们的ASCII之和;
3.获取用户名的长度,与刚刚的ASCII之和相乘;
4.乘积再与先前转化的数值相加,再转化成大写字母;

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 55
活跃值: (75)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
我能想到的一种方法是: 先实现你所描述的算法的c语言版然后 通过ida反汇编。 最后在优化。不过真正的汇编大牛都不会这么干的……
2009-11-8 19:39
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
3
请详细说明,最好能举个算法例子,这样大家才好帮你
2009-11-8 21:41
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
楼主你把你提出的问题作为编程的条件,把步骤引入到代码中,不就可以了吗?

我等下按你的思路写个delphi的算法给你看下!
2009-11-10 14:51
0
雪    币: 0
活跃值: (954)
能力值: ( 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);

本来想写一个变形的算法,在上班,怕时间不够!
2009-11-10 16:07
0
雪    币: 261
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
DELPHI 的我还是会写了!就是不会汇编的!
2009-11-13 07:17
0
雪    币: 232
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
DELPHI写完后运行,用OD查看
2009-11-13 15:55
0
雪    币: 202
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
for i:= 0 to length(s3) do
五楼的这里要从1开始吧,
2009-11-14 08:41
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
嗯,疏忽了。。
2009-11-14 11:43
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
汇编的,写出来比较累的。。 大概5-60行左右
2009-11-14 11:44
0
雪    币: 750
活跃值: (228)
能力值: ( 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不存在转换问题

................

参考下
2009-11-18 01:56
0
游客
登录 | 注册 方可回帖
返回
//