一次面试===

被巨巨面试了。。。。。

不过整体来讲还是感觉到了自己的缺点

我学习一个东西的时候  一般知识点延申的时候  我就去转手其它知识

然后知识点连成片的时候  再去往下延申就会很简单。。。。。。 

但是 有一点就比较糟糕        经常会忘了回头来延申====

一开始 提了一下 知道那些断点 区别是什么

断点有 软件断点  硬件断点 还有  内存断点

这个我刚开始学逆向的时候就 去搜索了一下   软件断点就是 int 3  是倚靠 引发 异常 STATUS_GUARD_PAGE_VIOLATION(0x80000001)  然后 把异常转接给调试器  这个我get到了

然后 硬件断点 就是  产生的异常是STATUS_SINGLE_STEP(单步异常) 

两者的区别

扫描二维码关注公众号,回复: 8960265 查看本文章

硬件断点:硬断点需要硬件寄存器提供支持,断点的数目受Embedded ICE中的Watchpoint数目的限制,但是可以在任何地方设置断点。

软件断点:软件断点通过在运行起来的程序中设置特征值实现,其数目不受限制,但是一般情况下软件断点只能在可写的存储器的地址中设置(比如:RAM),而不能在ROM(比如:Flash)中设置。

扩展  被一个师傅给 提点了一下

内存中断 把分页属性调成不可读不可执行  所以OD  只能下一个内存中断  那么 硬件断点为啥只能下3个呢?

因为寄存器保存地址只有3

硬件中断实现依赖于寄存器保存的地址byte 

而软件中断是个伪中断

依赖于执行代码int 3于 TF标志位

但是有些地方是无法执行int 3

本质硬件中断优先级没有内部中断,比如除零异常、溢出优先级高


不能粗糙的理解  硬件断点比 软件断点的优先级高

如果想多了解的话  建议去看 《软件调试》

详情可以看

https://blog.csdn.net/macrossdzh/article/details/6898928

然后 又问道 印象比较深的题目  

然后延申到 java 层能不能smc  我对java不太熟悉 平时也没有怎么用过  

然后 我感觉应该是可以的       然后 ====  就不可以了 尴尬。。。。。

然后又提到了 反调试 

由于平时没有喜欢逛  看雪 吾爱 所以 反调试还是看过一些的

详情可以看

https://bbs.pediy.com/thread-225740.htm

然后 师傅又提了一句 linux平台的反调试  这个我还真的没有怎么了解过 

唯一知道的就是  关于时间差的一个调试 回到寝室刚刚想起来=====   在pwn题里面也见过 

然后 面试的时候有点紧张 所以就忘了   其它还有一些  详情可以看

https://blog.csdn.net/stonesharp/article/details/8211526

然后就是PE重定向   这个我其实应该也是知道的。。。

只不过一时想不起来 这个概念===

重定向就是  每个dll 基址加载的时候可能都不会太一样 ,,

比如 a.dll 加载基址是 40000   那么 如果b.dll 也是400000  那么就会把b的加载基址修改成 500000  那么  它里面的函数 的相对偏移不会变  比如 一开始 b的dll 一个函数是 412345 那么根据重定位之后就变成了512345

也就是一个重定位的作用====

这个按理说应该能答出来的  。。。

还是自己掌握的不太牢固。。。

最后问了一下刷了那些CTF平台,

然后就gg了===

虽然这次 面试的发挥很差   但是 面试的巨巨 确实算是一个我的偶像 ,, 当时 刚入门的时候就听到他的名字 翻到他的博客 也很惊讶他的学习态度=== 很努力的一个巨佬

收获:  要经常回顾自己学的东西 还差到哪里  学一个东西的时候 要刨根问底      然后学东西的时候要学牢固 

不要过了一段时候就给忘了====      还有就是 有一个良好的心态吧  ^=^

总体而言 还是很开心能被大佬面试 还能看到自己的不足 ==  也感谢巨巨 浪费时间面试我这个菜鸡(逃===

发布了313 篇原创文章 · 获赞 44 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_41071646/article/details/101437197
今日推荐