首页
社区
课程
招聘
[旧帖] [求助]请人帮忙解释下这段代码 0.00雪花
发表于: 2007-7-28 19:51 3710

[旧帖] [求助]请人帮忙解释下这段代码 0.00雪花

2007-7-28 19:51
3710
我破解delphi写的程序的时候经常遇到这段代码,有人帮忙解释下么
004A8F64        55                            push ebp
004A8F65        8BEC                          mov ebp,esp
004A8F67        B9 0C000000                   mov ecx,0C
004A8F6C        6A 00                         push 0
004A8F6E        6A 00                         push 0
004A8F70        49                            dec ecx
004A8F71      ^ 75 F9                         jnz short unpacked.004A8F6C

而且老是给跳入这个循环从004A8F6C到004A8F71,有什么方法可以跳过。。
谢谢啦

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
那段代码你可不能去除他,那段代码是函数在初始化函数的局部变量,去除掉程序肯定出问题。你可以在OD里直接按F4跳到004A8F73继续运行。
2007-7-28 21:39
0
雪    币: 208
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
这段话其实就是进入了一个子程序,
004A8F64        55                            push ebp;ebp压栈
004A8F65        8BEC                          mov ebp,esp把esp也就是当前的栈顶其实此时就是ebp值给ebp,目的是为了保持压栈平衡用的.
004A8F67        B9 0C000000                   mov ecx,0C;ecx=12,用来计循环次数
004A8F6C        6A 00                         push 0;
004A8F6E        6A 00                         push 0
004A8F70        49                            dec ecx
004A8F71      ^ 75 F9                         jnz short unpacked.004A8F6C;以上几句其实就是用来建立一个堆栈区

此时的堆栈如下:
0
0
0
0
0
0
0
0
0                       ;ebp-0c
0                       ;ebp-8
0                       ;ebp-4
ebp                   ;ebp
子程序返回地址   ebp+4

基本就这样了,正如二楼所说那样是程序初始自已加上去的.人家的标准,所以一定别改.
2007-7-28 23:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
在弱弱的问一个问题,比如我用DeDe看delphi写的软件,比如找到了加密这个按钮
然后看到了 这个按钮的地址,比如:004A8F64然后我就下断点,就会跳到刚刚上面的结果那里。。。这是为什么,每个delphi都是这样,,,,极度郁闷。。。如果我要正确下断点那么因该下那里哦,求救。。。。!!!!!!!!!
2007-7-29 06:04
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
不太明白你想要说些什么。如果那个按钮地址是关键的算法点,你在那个地点下了断了,程序会中断到那里是正常的。
2007-7-29 10:15
0
游客
登录 | 注册 方可回帖
返回
//