首页
社区
课程
招聘
[求助]关于反汇编VC++生成的程序调用API时的参数问题
2004-12-9 15:15 4283

[求助]关于反汇编VC++生成的程序调用API时的参数问题

2004-12-9 15:15
4283
关于反汇编VC++生成的程序调用API时的参数问题

举例说明:
push 0043000
push 0043004
push 0043008
push ecx
push eax
call esi

如上所示,前3个堆栈的是内存中的地址
如果动态跟踪到call esi处很容易获得其中的参数值

联系上下文感觉这些应该是程序编制时的常量值(不知理解是否正确)

我的问题是能否不运行这个程序而把这些参数值取出来,(那个软件做了
在线验证。可是服务器早没了。所以软件运行不起来)

高手们给点提示。或介绍些关于追踪破解在线验证程序的文章。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞1
打赏
分享
最新回复 (6)
雪    币: 78
活跃值: (115)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
采臣·宁 1 2004-12-9 15:19
2
0
编译器优化。全部都是参数,ESI指向一个函数,ESI的赋值语句可以向前找得到的。
雪    币: 1790
活跃值: (2982)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
拍拖 2 2004-12-9 15:30
3
0
那个CALL ESI我知道是什么因为一分析就能得出

我的问题是怎么获得push 0043000
push 0043004
push 0043008
这三个里的值。因为它的验证服务器早没了。所以运行不到该处。
查找时这些地址为空。

能利用别的方法获得这里面的数据吗
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
shoooo 16 2004-12-9 15:45
4
0
最初由 拍拖 发布
我的问题是怎么获得push 0043000
........


显然这是编译器写死了的
雪    币: 78
活跃值: (115)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
采臣·宁 1 2004-12-9 15:56
5
0
静态成员,用在程序中用交差引用的方法来搜索写入到这个内存的代码。
雪    币: 1790
活跃值: (2982)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
拍拖 2 2004-12-9 16:02
6
0
能不能查到到底是什么时候程序往这里予的值
雪    币: 78
活跃值: (115)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
采臣·宁 1 2004-12-9 16:42
7
0
当然可以了,除非是从服务器中接收到的数据
游客
登录 | 注册 方可回帖
返回