当前位置: 代码迷 >> 汇编语言 >> [幽默机智问答] 汇编系列,给菜鸟
  详细解决方案

[幽默机智问答] 汇编系列,给菜鸟

热度:5280   发布时间:2013-02-26 00:00:00.0
[幽默机智问答] 汇编系列,给初学者
所有答案以后揭晓

1. 老比尔的病毒
微软总裁比尔盖茨一生致力于linux病毒的开发,现在病毒已经接近完成了,却发生了个困难。还需要eax中放一个常量-4,但是整个程序只剩下两个字节可用。不过这难不倒比尔,他是如何实现的。(已知所有通用寄存器中都为0)

2. 微软的全面攻击
微软一边开始指控一批linux 用户偷取了他们的代码,同时一边带来了一些程序进入linux市场。在这双重打击下,开源程序员们日子每况愈下。你怀疑微软使用了你写的汇编压缩代码。你现在为了生存必须更新原来的代码。为了使微软程序无法使用你的更新,你在程序中要有一段显示个标志,一开始你想显示"(",不过经过测试后发现"("并不好,显示"1"更好。
要求修改你的程序中的一个字节达到以上目的,如何修改?程序片段如下
Assembly code
                call label                push -1014969024label:        lea ebp,[$ + 8]                call ebp                sub ebx,ebx                inc ebx                pop ecx                mov edx,ebx                mov eax,edx                inc eax                inc eax                sub ebp,byte 12                pop esi                call ebp 

待续

------解决方案--------------------------------------------------------
看看先。
------解决方案--------------------------------------------------------
第一俺瞎猜一下,会不会是DB了两个数值,这个两个数值与系统的的其他东西组成一指令。

第二个俺还没想,争取在写完最近的一个大工程后,学学逆向工程。
------解决方案--------------------------------------------------------
有点意思。
1、想出来了
push eax
xchg esp, eax
2、还没看
------解决方案--------------------------------------------------------
佩服佩服。
------解决方案--------------------------------------------------------
学习下。
------解决方案--------------------------------------------------------
cnzdgs 
回贴亦是善举 
等级:
 发表于:2008-04-23 22:21:394楼 得分:0 
有点意思。 
1、想出来了 
push eax 
xchg esp, eax 
2、还没看 

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

高,实在是高,佩服,佩服^_^ 
 
 
------解决方案--------------------------------------------------------
2、这个要单步调试,手头没有好的调试工具,不答了。
3、文件说明块地址最前面4字节储存上个文件地址
mov eax, [esi]
mov eax, [eax]
------解决方案--------------------------------------------------------
一群牛人啊~~~学习....
------解决方案--------------------------------------------------------
第3题

mov esi, [esi+4]
mov edi, [edi+4]

等达人指点。
------解决方案--------------------------------------------------------
探讨
问题3 经典双向链表

题目较长:
某文件系统文件结构表使用单向链表结构,如下
4字节头,指向下个文件结构地址(0表示最后个地址)
4字节,指向文件说明块地址(不能为0)

现在需要把此文件结构表升级为双向链表,为了兼容原来的程序,不能改变其结构大小,仍然只能是8字节
问如何修改文件结构表?再写个函数使得符合如下功能。

; getlastfile 函数,输入edi,esi分别表示
; edi --> 当前文件结构地址
; esi --> 指向下个文件地址(已经是最后个文件的话则为0)
; 输出 eax 为上个文件地址
getlastfile:
....
....
ret
函数要求只能最多2条指令,且edi esi不能改变 (eax初始值不定)

------解决方案--------------------------------------------------------
探讨
引用:
不正确,文件说明块可以不修改

------解决方案--------------------------------------------------------
学习一下。。。。。。
------解决方案--------------------------------------------------------
呵呵,有意思!
------解决方案--------------------------------------------------------
第1题,对Linux不了解,如果是Windows XP系统,执行int 2eh会返回eax为C0000005,Linux系统是不是有某个中断可以返回eax为-4?
------解决方案--------------------------------------------------------
第3题,
探讨
文件说明块不能改变阿,改变了还怎么兼容原来的程序呢?

------解决方案--------------------------------------------------------
  相关解决方案