首页
社区
课程
招聘
[讨论]程序一开始就修改堆栈,为啥
发表于: 2013-2-6 22:42 4504

[讨论]程序一开始就修改堆栈,为啥

2013-2-6 22:42
4504
弄了个程序,先是顺利脱壳,然后发现一个需要注册的跳转,于是修改跳转,(按理说就成功了,可是)然后问题出来了:
1、程序运行不出错了,但是显示有问题,打开任何文件都是空白显示,而这个软件是bit显示的
2、有的菜单项不能用(调用子程序),点了之后鼠标忙一下,就没反应了(和问题3有关)
3、程序有很多子程序,我想如果破解不成就自己写个界面,调用它的子程序吧,竟然发现它不是以“子程序名+需查看的文件名”打开的,然后发现子程序很可能也做了版权保护。子程序的修改时间是完全一样的,包括秒,程序大小也是有规律的,好像最后填充了0,凑够16的整数倍。
4、好吧,既然爆破不行,我就从源头看算法吧,这时候发现反汇编一开始就调用两个call修改了堆栈,把堆栈改的乱七八糟,我看不下去了,来看看大家什么看法。

ps:貌似程序边运行边解码自己,因为有部分没有反汇编成功,用的od。用IDA反汇编的时候没成功反汇编的代码就少得多,好像是IDA模拟运行程序的时候解码了代码。
是脱壳没有脱干净吗?

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 89
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
边运行边解码是壳的功能。  没脱干净吧
2013-2-7 13:47
0
雪    币: 229
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
“于是修改跳转,(按理说就成功了” ---只会乱挑的人是很容易碰头的
“子程序名+需查看的文件名”打开 --- 不是只有这一种方法的
“好像最后填充了0,凑够16的整数倍” --- 这个是对齐
“两个call修改了堆栈,把堆栈改的乱七八糟” -- 你只是跳,没修改过,不应该出现这种事。所以,脱壳不彻底的可能比较大
2013-2-8 00:11
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
原来如此,我再试下,实在不行要手脱了
2013-2-20 01:03
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
受益匪浅,过完年了继续努力,随时汇报
2013-2-20 01:04
0
游客
登录 | 注册 方可回帖
返回
//