首页
社区
课程
招聘
[旧帖] [求助]注册算法如何入门??? 0.00雪花
发表于: 2010-1-27 13:06 1802

[旧帖] [求助]注册算法如何入门??? 0.00雪花

2010-1-27 13:06
1802
看了许多的教程,都是在分析算法,无奈看不懂,也看不明白,现在连如何入门都不知道了。
如:百度一下----[PYG]算法分析入门第三课
下面是我截取的一段文章:
进入call 0050EE74:
0050EE74        /$   55           push ebp
0050EE75        |.   8BEC       mov ebp,esp
0050EE77        |.   6A 00        push 0
0050EE79        |.   53           push ebx
0050EE7A        |.   56           push esi
0050EE7B        |.   8BF0       mov esi,eax                      ;   机器码十六进制03E439C9送到esi
0050EE7D        |.   33C0       xor eax,eax                      ;   清零
0050EE7F        |.   55           push ebp
0050EE80        |.   68 42EF5000   push Unpacked.0050EF42
0050EE85        |.   64:FF30    push dword ptr fs:[eax]
0050EE88        |.   64:8920    mov dword ptr fs:[eax],esp
0050EE8B        |.   BB D9D10E00   mov ebx,0ED1D9                   ;   初始化ebx=0ED1D9(即十进制971225)
0050EE90        |.   8D45 FC    lea eax,dword ptr ss:[ebp-4]
0050EE93        |.   BA 58EF5000   mov edx,Unpacked.0050EF58           ;   ASCII "wangshuang"
0050EE98        |.   E8 8B5EEFFF   call Unpacked.00404D28
0050EE9D        |.   8B45 FC    mov eax,dword ptr ss:[ebp-4]
0050EEA0        |.   E8 A360EFFF   call Unpacked.00404F48              ;   计算字符的长度,并放到eax
0050EEA5        |.   85C0       test eax,eax
0050EEA7        |.   7E 1B        jle short Unpacked.0050EEC4
0050EEA9        |.   BA 01000000   mov edx,1
0050EEAE        |>   8B4D FC    /mov ecx,dword ptr ss:[ebp-4]
0050EEB1        |.   0FB64C11 FF   |movzx ecx,byte ptr ds:[ecx+edx-1]   ;   逐位取"wangshuang"的每位ascii送到ecx
0050EEB6        |.   8D0C89    |lea ecx,dword ptr ds:[ecx+ecx*4] ;   ecx=ecx+4*ecx
0050EEB9        |.   8D0C89    |lea ecx,dword ptr ds:[ecx+ecx*4] ;   ecx=ecx+4*ecx
0050EEBC        |.   03D9       |add ebx,ecx                      ;   ebx=ebx+ecx(即等于971225+ecx)
0050EEBE        |.   03DE       |add ebx,esi                      ;   上面的值加上机器码(前面分析了esi中放的是机器码的十六进制)
0050EEC0        |.   42           |inc edx                         ;   指向下一位字符(edx=edx+1)
0050EEC1        |.   48           |dec eax                         ;   字符长度减一(eax=eax-1)
0050EEC2        |.^ 75 EA        \jnz short Unpacked.0050EEAE        ;   循环取
0050EEC4        |>   8D45 FC    lea eax,dword ptr ss:[ebp-4]
0050EEC7        |.   BA 6CEF5000   mov edx,Unpacked.0050EF6C           ;   字符"yaoyuan"
0050EECC        |.   E8 575EEFFF   call Unpacked.00404D28              ;   这里和上面调用同一call
0050EED1        |.   8B45 FC    mov eax,dword ptr ss:[ebp-4]
0050EED4        |.   E8 6F60EFFF   call Unpacked.00404F48              ;   这里和上面调用同一call,
看作者写的是头头是道,无奈我等小菜看不懂,那些CALL关于算法的,而那些CALL是无用的,还有就是算法从那几句开始,到那里结束。
如何知道初始化EBX,计算字符的长度,并放到EAX中,还有逐位取假码,ECX=ECX+4*ECX等这些东西都是如何看出来的,你们是如何知道的,看我问的这问题,就知道是小儿科,但就是不懂所以才问的。如果想能看明白这些东西,要理解什么东西,我只是简单的知道汇编的意思,但如果注册码和汇编联系起来就看不出来了,比如:我知道inc edx意思就edx的值加1(汇编中的意思),但在分析算法时就成了,指向假码的下一位字符了。如lea ecx,dword ptr ds:[ecx+ecx*4]意思就是取ds:[ecx+ecx*4]的有效地址给ecx(汇编中),但在分析算法时就成了别的意思了!!这如何看出来,我想不仅是我,是刚学习算法入门的小菜都会遇到这问题,而论坛里整天搞些高深的算法,真有点不为我们这些入门的菜鸟负责啊(有点哭笑不得)。
每个人都要经历这个算法入门的阶段,你们是如何学习的,又是如何掌握的,高手们说下啊!!!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (19)
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
恩 需要学习了
真的看不懂
2010-1-27 13:09
0
雪    币: 72
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
天书夜读,一到三章…自己用c写那种类似加密的简单算法(别说什么crc那种应用级别的),之后根据源码,在od下跟…最后用release版来跟…
多跟跟,可能会对某些指令和寄存器比较敏感…
在去看破文,跟真正的注册算法,先不看文章来跟,全跟完…有不明白在看文,还不明白就谷歌…实在不明白类,还有看雪嘛…
多练就能有那种关键部分的感觉了。

我用手机看帖,回帖。怎么说,我跟你所说的情况很类似…
2010-1-27 14:14
0
雪    币: 72
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
我跟你所说的情况很类似…论坛的东西很多…用好搜索功能…前些天就看虚函数,虚继承的东西,在vc下的猜想,在od下完全看到,并通过前人的分析,更加理解了虚表结构…
虽然不怎么发帖。但坐车,吃饭时都会用手机到这来看看…

我们做为新人,是不怎么讨人喜欢,那是我们作风不好。

就象某牛说的,你什么都不看,拿着软件就去问人家,人家都不知道从哪给你说…

如果自己全看了,遇到简单的问题,查网络,深点的问题查书。最后仅仅是几个最核心的问题,我想你把分析过程还有问题摆出来。肯定也有很多人愿意解答的。
2010-1-27 14:15
0
雪    币: 72
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
就说教程,我也看了很多…就说免杀…看了半天看了个热闹…但是潜下心把王爽老师那本汇编看到中断之前,就回发现某些教程的作者说的就错着…

我认为教程是块砖,抛出来了,你要捕获里面的信息,深挖一下,还得靠书…通过看书,自己在思考,而不是看这教程傻乐
2010-1-27 14:31
0
雪    币: 72
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
我是新手中的新手,说的可能有问题,手机回贴,输入不规范,谅解…
至于所提到的免杀,那是07年的事…不要说我是火星人,当然我也就是停留在改特征码的阶段。现在都不干,也不看,那些"血汗工厂"式的东西了…
2010-1-27 14:38
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
前些天还说学习windows编程呢,不过到现在还没有电脑呢!突然感觉是不是等我学会了,那时windows已经被淘汰了?必竟windows也有些年了吧!再说了,现在计算机技术发展这么快,不知道咋办!!!突然没了对计算机那种当时的狂热了,而是害怕起来了。倒是yasm很是块学习的料啊,用手机看贴子,学习精神果然可佳啊!!!
2010-1-27 14:55
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
说真的有时候在这里看帖子有一种浪费时间的感觉,,也许是没有找到好的forum吧
2010-1-27 15:13
0
雪    币: 65
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这个就跟学英语时培养的语感一样,有些东西也不见得说就是要分析出来的,
就像去字符长度,去字符串一样,这样都是凭借经验来的
2010-1-27 15:44
0
雪    币: 72
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
看雪不是好论坛?浪费时间?
mj那句话我不敢说出来,怕有人打我。那我喊一句,java…
2010-1-27 16:53
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
11
【原创】 算法分析入门教程实战篇及应用篇---NBA2005新春大奉送      

--------------------------------------------------------------------------------

标 题: 【原创】 算法分析入门教程实战篇及应用篇---NBA2005新春大奉送
作 者: nba2005
时 间: 2008-02-12,00:21
链 接: http://bbs.pediy.com/showthread.php?t=59537
2010-1-27 23:26
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
12
2008-01-29, 22:58  【原创】一个入门级的CrackMe分析(适合新手)业余版 与高手Petnt文参考阅读      

--------------------------------------------------------------------------------

【文章标题】: 一个入门级的CrackMe分析(适合新手)业余版
【文章作者】: NBA2005
【作者QQ号】: 382309369
【软件名称】: Crack me之 zugo.exe
【软件大小】: 28KB
【下载地址】: http://bbs.pediy.com/showthread.php?t=58867
【加壳方式】: 无
【保护方式】: 无
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: Ollydbg
【操作平台】: WIN2000
【软件介绍】: 新兵论坛的毕业生练手用的
2010-1-27 23:30
0
雪    币: 46
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
说实话我也感觉和楼主处在一个阶段,没办法,多看,多写,多练吧
2010-1-28 00:10
0
雪    币: 182
活跃值: (81)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
我认为算法学习不能光看书,最好是带着问题去实践,在实践中学习,记忆会更加清晰。我想,也可以这样——自己编写一些小软件,反汇编去看看算法,这个方法也不错哦!
2010-1-28 22:18
0
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我也刚开始学,说点自己的感受。能看懂汇编的基础上最好系统学一下逆向工程的教程,就是怎么由反汇编的代码来理解代码功能,进而用高级语言重新描述,这对分析算法很有用。比如你提到的lea ecx,dword ptr ds:[ecx+ecx*4],从字面理解是取ds:[ecx+ecx*4]的有效地址给ecx,然而在优化编译时lea常用来代替add/sub ,所以这里其实是ecx=ecx+4*ecx 的意思。我也是初学者,希望我说的对你有帮助,要提高水平,关键还是得多看,多练,大家一起努力~
2010-1-28 22:56
0
雪    币: 234
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
算法不算难吧,自己学好汇编语言,现在普通软件很少用高强度算法的
2010-1-29 20:35
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
先学汇编分析,然后学注册算法?慢慢来吧,走完一步说一步,我现在汇编还是有问题!
2010-2-3 11:38
0
雪    币: 65
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
同意楼上的,我野菊的《天书夜读》这本书可以
2010-2-3 16:19
0
雪    币: 135
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
对于汇编主要还是反汇编后的代码,用OD跟,观察寄存器的变化,一定要想着当前这个寄存器或堆栈地址中是什么变量,后面对这个寄存器或堆栈地址的操作就是对这个变量的操作。比如取注册码,取某一位之类的。
2010-2-4 11:28
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
看来路还很长,那种没有技术含量的破解,是行不通的!
2010-2-4 12:19
0
游客
登录 | 注册 方可回帖
返回
//