穿山甲壳的问题(概念问题)
我在学习脱壳时,直到这一刻,才知自己是多么的才疏学浅,这次虽然问题有点多,还是望朋友相助,根据红色括号内容回答穿山甲壳单线程的标准法----2次断点法he GetModuleHandleA+5;bp GetCurrentThreadId
1先下he GetModuleHandleA+5--说是为了逃过iat加密(输入地址表加密),iat在程序中起着什么作用呢(简述下程序正常执行的流程)?所谓的加密壳是不是就是在加密IAT(回答是,否,不一定)?
2GetModuleHandleA该函数在程序中的作用是什么(简述)?
3下完断点后,shiftf9运行一次,此时所停在的地方是不是之前下断的那个函数的地方?(回答是与否)
4然后不断的shiftf9(说是跟踪),这每一次运行后所停在的地方是不是接下来的该函数的地方(如果是的话,就说明一个程序可以有多5个同样的函数了)(回答是与否)?
6在 一次时间缓冲比较大的地方取消断点---这缓冲大的地方代表着什么呢(说明程序怎么样了呢)?
7后altf9执行到用户代码,执行到用户代码是什么意思呢,难道之前不是在实行吗(之前不断的shiftf9)?(详细回答)
8之后还要找MAGICjump把它改掉---这一跳代表着什么,跳过加密部分了?(解析下代码的含义-说明下程序是怎么想的)
9之后是第二次断点,说是跳到离oep最近的函数,我困惑,他怎么直到离oep最近的是这个函数呢(你怎么想)
10之后是在一个callf7跟入,为什么不是跳到oep(就是单步走到),和平时不太一样(简述理由) 我来帮楼主顶一下期待高手来 多看看黑鹰或者天草的视频教程 自己就会解决的 学习中............ 这个问题不知道楼主解决没有 可能时间久了也就懂了
但是现在对于上面的问题恰巧很多憋在心里难受
就比如说 如果穿山甲是未知壳你上来就这两个断点?
希望高手解答下不要不屑谢谢你们 帮楼主顶下,我也期待高手来,呵呵~ 教程里面说得都还清楚了
1:IAT是做什么还要问??
2:GetModuleHandleA 取一个应用程序或动态链接库的模块句柄声明
GetCurrentThreadId 获取当前线程一个唯一的线程标识符
是两个API
3:你看OD下面的提示,是异常还是断点处。。一看不就知道了?
4:有很多异常的。。。看OD提示 原帖由 CorpUlent 于 2009-10-13 22:00 发表 https://www.chinapyg.com/images/common/back.gif
教程里面说得都还清楚了
1:IAT是做什么还要问??
2:GetModuleHandleA 取一个应用程序或动态链接库的模块句柄声明
GetCurrentThreadId 获取当前线程一个唯一的线程标识符
是两个API
3:你看OD下面的 ...
感觉还是没回复到点子上IAT是做什么当然知道 API的含义当然也懂
顶这个帖子 是感觉帖子里问题的实际的操作原理是什么呢?
就比如说 为什么GetModuleHandleA这个断点就必须是majic跳?(这个是对于已经分析完了的结果 ,如果就当成一个未知壳怎么去调试呢?)
改JMP跳过检测是怎么分析的?也没说具体原理,只是手把手的做
再比如第一个断点下了以后shift+F9都说的是自己感觉要在缓冲比较大的地方返回
而我的机器第二下shift会有相当大的一个缓冲带 那时候根本不可能返回是个系统领空
最后它可以自己断在断点处 看堆栈的话 可以很明显的看出返回是由一个系统函数返回到程序领空的
所以我想这个靠感觉去找返回时机是不是有点出入呢?而找合适的返回时机是不是应该仔细观察堆栈调用而不是去感觉哪里缓冲带比较大吧?
(恕我白痴的,以前有看最佳返回时机的文章,不过那时候菜的不懂,一会我会再补补,还请各位大们不吝赐教指点)
第二个断点我机器根本就返回不到 我自己调试然后修改一个跳转 执行下面一个call才进入了OEP而且这个call不是call的EDI 而是一个地址
好不容易脱完壳cut掉无效指针抓取了一下还是出现了错误 不能执行
--------------------------------
上面的问题有想解释的就给解释下吧非常感谢
天才的教程感觉不适合我 因为我不属于那种给一口吃一口的人天草的教程恰恰没有解释原理性的东西 很少
我对于新事物不能理解他的原理的话会很憋得慌全靠自己去悟高手都知道这个是很浪费时间的
可能一个小问题花了你很多时间 当然你学了其他很多东西 但是有点不成正比
但愿这次的引导小组教学能顺利加入 不知道有没有才德兼备的前辈带一下 可以的话给留言谢谢了 果然高手都不带鸟的 /:011
中午四五个小时 在好几个群喊一看是1.xx——2.xx还是单线程就不爱鸟我了
页:
[1]
2