零基础破解爱好者【毕业试卷】
本帖最后由 ffffffff 于 2014-10-1 01:52 编辑这是恒大老师的零基础逆向爱好者毕业试卷,跟着老师学习了一段时间逆向,各位童鞋也应该检测一下自己的学习成果了!
希望恒大老师看到了也能给同学们批改批改~
大家快来检验一下这段时间的学习成果吧!
试卷问题如下:
1. 当软件使用弹窗方式提示我们错误时,我们可以使用哪几种方式进行寻找关键跳?
2. 当软件不提示我们任何错误信息时,此时我们该使用何种方式进行寻找关键跳?
3. 一个软件载入OD后,查找不到字符串的原因有几种?分别是什么?
4. 程序正常脱壳后为什么无法正常运行?有几种可能造成此结果?该如何解决?
5. 说明什么是关键CALL,并且我们该如何寻找关键CALL?
6. 修改关键跳时,什么时候使用NOP,什么时候时候JMP?
7. 在VB程序中,下API断点MessageBoxA为何不起作用?
8. 大部分程序关键CALL的返回值存放在哪个寄存器里?
9. 为什么带壳的程序要运行起来去401000处?401000处是怎么回事?
10. 如何在系统领空快速返回至程序领空?
11. DeDe可以调试什么语言编译的软件?
12. F8单步跟踪未启动的软件时,遇到程序跑飞该如何解决?
13. 当遇到INI类型重启验证软件时,我们可以使用什么断点进行对其拦截?
14. 当遇到退出暗桩时,有几种方式取消这个暗桩,该如何下断?
15. 什么语言编译的程序可以使用Push窗体法?Push窗体法该如何操作?
16. VB程序与其他大部分程序不一样,VB关键CALL下面的比较命令通常是与什么比较?
17. 我们手动寻找并修复IAT的时候,IAT断首的地址应该减去谁?
18. 万能断点都能断下什么?他能在什么平台下使用?
19. F12暂停法的堆栈回朔其实说的就是一个怎么样的过程?
20. 假设一个JMP可以跳过错误提示,而这个JMP并没有起到跳过错误的作用,这是什么原因造成的?
21. 当我们遇到一个重启验证时,该从什么地方进行逆向才能彻底解决重启验证?
22. 字符串搜索时,是否应该输入完整提示信息?为什么?
23. 论坛上很多人在求思路,这是怎么回事?
24. 当我们按下F12暂停时有几种方法回朔?
25. 暗桩是什么?暗桩什么功能?
26. 我们在修改关键CALL返回值的时候,常用的两指令都有谁?分别怎么使用?
27. 能把OD修改为某某人专版的软件叫什么名字?
28. 脱壳后自效验的程序在效验时,他在用什么与什么对比?
29. 对于时间限制软件都有哪些类型?
30. 通过以上问题,你对零基础逆向知识有什么需要总结的吗?
本帖最后由 ffffffff 于 2014-10-2 00:56 编辑
交卷:
1. 当软件使用弹窗方式提示我们错误时,我们可以使用哪几种方式进行寻找关键跳?
搜索字符串找到错误提示的call,根据call找到关键跳。 F12暂停法。 利用API断点。
2. 当软件不提示我们任何错误信息时,此时我们该使用何种方式进行寻找关键跳?
可以尝试根据编程语言的不同来下按钮事件断点。
3. 一个软件载入OD后,查找不到字符串的原因有几种?分别是什么?
1.软件有壳 。2.字符串被加密。
4. 程序正常脱壳后为什么无法正常运行?有几种可能造成此结果?该如何解决?
1.程序需要修复 2.程序还有附加数据(个人盲点)
使用lordpe+REC。
5. 说明什么是关键CALL,并且我们该如何寻找关键CALL?
个人理解关键call就是程序调用外部输入信息进行处理(比较,赋值等等)的一个地方。
找关键call可以根据关键跳来查找,一般关键call都在关键跳的上面不远处~
6. 修改关键跳时,什么时候使用NOP,什么时候时候JMP?
不需要跳转的时候可以使用NOP,需要跳转的时候可以使用JMP。
7. 在VB程序中,下API断点MessageBoxA为何不起作用?
由于vb程序的特殊性(具体我不知道怎么个特殊法),信息框的断点应该使用vb专用的rtcmsgbox断点。
8. 大部分程序关键CALL的返回值存放在哪个寄存器里?
听说是EAX。
9. 为什么带壳的程序要运行起来去401000处?401000处是怎么回事?
因为401000处是代码执行段,程序领空。
10. 如何在系统领空快速返回至程序领空?
alt+f9还是crtl+f9来着 忘记了 (这两者有什么区别吗?)
11. DeDe可以调试什么语言编译的软件?
Delphi and Bc++ 。
12. F8单步跟踪未启动的软件时,遇到程序跑飞该如何解决?
F7步入。
13. 当遇到INI类型重启验证软件时,我们可以使用什么断点进行对其拦截?
GetPrivateProfileStringa ReadFile
14. 当遇到退出暗桩时,有几种方式取消这个暗桩,该如何下断?
下退出断点。 找到暗桩执行的call下断,在call附近找关键跳来跳过这个call。
15. 什么语言编译的程序可以使用Push窗体法?Push窗体法该如何操作?
易语言 FF25 push 10001
16. VB程序与其他大部分程序不一样,VB关键CALL下面的比较命令通常是与什么比较?
不太清楚。。。
17. 我们手动寻找并修复IAT的时候,IAT断首的地址应该减去谁?
减去程序段。
18. 万能断点都能断下什么?他能在什么平台下使用?
引用恒大老师的话:万能断点什么都断,就是牛逼哈! xp系统下使用
19. F12暂停法的堆栈回朔其实说的就是一个怎么样的过程?
是不是f8单步返回到程序领空的一个过程。
20. 假设一个JMP可以跳过错误提示,而这个JMP并没有起到跳过错误的作用,这是什么原因造成的?
jmp上面有条件跳转(jnz,je等)跳过了jmp
21. 当我们遇到一个重启验证时,该从什么地方进行逆向才能彻底解决重启验证?
好像是关键跳上面的关键call处,给寄存器赋值。
22. 字符串搜索时,是否应该输入完整提示信息?为什么?
不用,模糊搜索,这样可以最大化的搜索到有用的信息。
23. 论坛上很多人在求思路,这是怎么回事?
可能没有思路了。。。
24. 当我们按下F12暂停时有几种方法回朔?
alt+f9还是crtl+f9其中一个(没记清) f8单步步过
25. 暗桩是什么?暗桩什么功能?
暗桩就是在调试中作者的反调试机制比如:关机注销重启,蓝屏,格盘,删除程序
26. 我们在修改关键CALL返回值的时候,常用的两指令都有谁?分别怎么使用?
mov retn进入关键call修改eg. mov eax,1 retn 给eax赋值1
27. 能把OD修改为某某人专版的软件叫什么名字?
uedit32
28. 脱壳后自效验的程序在效验时,他在用什么与什么对比?
可能是文件大小,文件名,进程名等等
29. 对于时间限制软件都有哪些类型?
不清楚。。。
30. 通过以上问题,你对零基础逆向知识有什么需要总结的吗?
还是有很多不足,必须沉下心来学习,多思考,多实践。 看来我要加快学习了。 第一题还有api断点 厉害,不错不错,鼓掌 {:5_116:} 上来就搜索peek/get message的怎么破 学习了,好多东西还是不懂啊 努力学习中! 恒大什么都教给你了,他以后怎么办? 好难..{:5_116:}