首页
社区
课程
招聘
[旧帖] 我该怎么看懂他? 0.00雪花
发表于: 2011-10-12 19:12 4530

[旧帖] 我该怎么看懂他? 0.00雪花

2011-10-12 19:12
4530
破解过程:
1.有人说olldbg没有什么用,为了反驳这种无知的想法,我以这个例子做一个小小的证明。这里只用到了olldbg十分之一不到的功能,不过已经够了。这里我假设你对olldbg有一定的认识。
2.open “qqpic.exe” ollydbg报告该软件加壳(asprotect),不管它,按F9运行。进入注册画面,随便输入名字和注册码,按“确定”,跳出错误画面。
3.进入olldbg,按ALT+M,在memory map窗口,选中qqpic的code段,右键选中dump in cpu
4.在cpu窗口的memory在窗口,search for binary string,在ASCII处键入“注册码”,search后发现了
004B2A14  C4 FA CA E4 C8 EB B5 C4  您输入的
004B2A1C  D7 A2 B2 E1 C2 EB CE DE  注册码无
004B2A24  D0 A7                    效!
5.在选中处右击,选find refrence,只有一个结果,双击后,在dissamble窗口可以见到如下代码
004B2977  E8 50F7FFFF      CALL QQPIC.004B20CC      <-判断注册码的程序(用到了ASCII形式的二进制算法)
004B297C  . 3C 01          CMP AL,1                  <-判断语句
004B297E  . 75 0C          JNZ SHORT QQPIC.004B298C  
004B2980  . B8 FC294B00    MOV EAX,QQPIC.004B29FC   
004B2985  . E8 2AEBF9FF    CALL QQPIC.004514B4
004B298A  . EB 0A          JMP SHORT QQPIC.004B2996
004B298C  > B8 142A4B00    MOV EAX,QQPIC.004B2A14    <-初始化出错画面 004B2991  . E8 1EEBF9FF    CALL QQPIC.004514B4

6。显然CALL QQPIC.004B20CC是关键,在该语句处find refrences to call destination,共有5处,显然有可能有5处判断的地方。(实际上是两处,但关键的就一处)
7.不到一分钟,我就跟踪到了关键代码了。
小结:
1.因为软件加了壳,在不脱壳的情况下,WDASM和ida没有什么用,而且就算不加壳,单单反编译就会超过1分钟
2.如果用trw2000或softice,高手吗,用一些命令也可以做到。而新手就要按F12和F10了,反正我没试过,可能也很快吧!

by slimboy[BCG]

上边这些本论坛2002年一个朋友发的文章,我只是随便找个例子,想说明自己的想法。

就是上边代码处!我想知道,高手们是怎么知道各各代码的含义的?
比如004B298C  > B8 142A4B00    MOV EAX,QQPIC.004B2A14    <-初始化出错画面
这一句,难道就单单看这么一长串,就知道含义吗?

朋友说我啥也不会,先看看王爽的汇编语言教程,我下载了,看了有几页了,我是想说,如果我把全书看完,并能对书中的一些指令,如 mov,jnz,bx,ax之类的多多了解的话,我就也能看懂这些调试代码了吗?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 111
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先正向再逆向。
2011-10-12 19:24
0
雪    币: 153
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
简单明白点说可以吗?别这么专业!不懂!
2011-10-12 19:25
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
4
trw2000或softice,这些都可以Debug  0环。
OD只能3环。

都有优点,也有缺憾。呵呵
2011-10-12 19:35
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
MOV EAX,QQPIC.004B2A14    <-初始化出错画面

这种注释信息是Cracker经过跟踪调试后,再次来到这句的时候,就知道程序在做什么操作了。
接在这句后面应该就是push eax
                              push ...
                              call  XXXXX 了
2011-10-13 11:58
0
雪    币: 3
活跃值: (178)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
你是动态调试啊。。。。。一步一步跟着走,看效果也可以知道。只看汇编肯定不行 你至少得会点编写应用的经验
2011-10-13 12:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
完全不懂,过来学习一下吧
2011-10-13 13:46
0
雪    币: 123
活跃值: (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
004B298C  > B8 142A4B00    MOV EAX,QQPIC.004B2A14    <-初始化出错画面 004B2991  . E8 1EEBF9FF    CALL QQPIC.004514B4

这个地方,你去了004514B4那看一下,然后看内存的断点。这里应该有一个messagebox dialog相关的东西。
2011-10-13 14:02
0
游客
登录 | 注册 方可回帖
返回
//