|
[原创]反OD调试的一些想法与实践
DbgBP dd 0F52EB007h在数据段定义。是DbgBreakPoint的hash值。 |
|
[已解决]如何获得程序运行参数?
我觉得像这样的A调用B,想知道传递给B的参数等可以在A的CreateProcessA下断,然后单击按钮,因为A要驱动B,中断了,于是参数尽在你手。。。。 而且,反溯回去也许都能知道A在调用B前做了一些什么准备工作了。。。 |
|
[原创]有关花指令的一点小研究(三)
forgot大师说的是tElock壳使用了这个技巧?? |
|
|
|
[分享]一段花指令
.text:10003368 60 pusha .text:10003368 .text:10003369 .text:10003369 loc_10003369: .text:10003369 8D 05 6F 33 00 10 lea eax, loc_1000336F .text:10003369 .text:1000336F .text:1000336F loc_1000336F: .text:1000336F 83 C0 0E add eax, 0Eh .text:10003372 EB 05 jmp short loc_10003379 .text:10003372 .text:10003374 ; --------------------------------------------------------------------------- .text:10003374 EB F3 jmp short loc_10003369 .text:10003374 .text:10003374 ; --------------------------------------------------------------------------- .text:10003376 DB 30 dw 30DBh .text:10003378 ; --------------------------------------------------------------------------- .text:10003378 57 push edi .text:10003378 .text:10003379 .text:10003379 loc_10003379: .text:10003379 FF E0 jmp eax .text:10003379 .text:10003379 tst endp .text:10003379 .text:10003379 ; --------------------------------------------------------------------------- .text:1000337B E9 db 0E9h .text:1000337C 21 db 21h .text:1000337D ; --------------------------------------------------------------------------- .text:1000337D 61 popa 使用了明显的jmp跳,还是很简单的,只不过用 jmp reg跳转寄存器来阻止反汇编器的分析。跳转过程还是很明显的。不用跟踪,直接IDA就出来了。这是常用的花指令形式。 |
|
《0day安全:软件漏洞分析技术》封面及目录
建议对中国劳苦大众们打折。 |
|
[注意]看雪论坛鼎力打造---2008年力作《加密与解密》(第三版)[2008年6月上旬上市]
去年就攒好买书的钱,现在银行利息都发了好几块钱了。 快点出书啊,等到花儿都开了。 多印些啊,免得我们动作慢,抢不到,又绝版了,那多郁闷。 |
|
[原创]C++类虚函数逆向学习总结
分析VC++程序的,一般在函数起始逮着ecx,数据区定位,基本上函数体里的mov XXX,this就是成员变量操作,call dword ptr [this+XXX]就是成员函数操作。我可没有心思去分析它是什么基类,继承,虚函数不虚函数的。嘿嘿。跟踪到我们所需要的类成员便是正道,这是我偷懒的门道,嘿嘿 |
|
[原创]RadASM环境下写ollyscript
晕了,由于ini里有关键字,所以排版不对,还是把打包好的文件传上来吧。。。 看了RadASM.ini的帮助说明与Assmber.ini的帮助说明,还是没有很大的帮助,英文的说明看得我眼晕。 于是用折衷的办法,把这些指令放到struct提示里,这样就损失了API提示了,但是至少不会乱填充字符。然后就是把那些指令说明给写了、对ollyscript的一些专有的语法提示给调整了一下。就这样吧。呵呵。 附件里有效果图,如果你觉得还好就用,如果觉得不好就当玩具喽,更好的情况就是我这个砖头能引出一块和氏璧来,嘿嘿。 |
|
[求助]请问OD调试失效!
ZwSetInformationThread与ZwSetInformationProcess要怎么过? 搜索了一下论坛,有贴子说:“ZwSetInformationThread(GetCurrentThread( ), ThreadHideFromDebugger, NULL, 0)) 是不是这个?要过它太简单了 入口代码用patch过的od就可以断下来,那也太简单了。。” 我直接下断retn 10好像不行,仍然全空白。这两个函数在进程中被调用>3次。请高手指教。 |
|
|
|
[原创]有关花指令的一点小研究(一) (二)
在上篇文章里我用call花指令实现迷惑IDA与OD。相关代码如下: myjmp proc pop eax add eax,ecx push eax ret myjmp endp start: mov ecx,offset @F- $ -10 call myjmp db '花指令乱码' @@:;.........正常指令继续 那么,我们是不是可以丰富一下这个花指令,使它的欺骗性更高呢?或者加入一些指令对付动态调试? [思路来源]: 1、一般破解教程告诉我们,call指令后面如果紧接着test eax,eax&jz/jnz指令,那么建议在后面两条指令下断,可以得到一些关键提示。 2、对于一般的动态调试断点,调试器会把原指令处代码改成int 3,执行到此处时中断再恢复原指令。 嘿嘿,有没有想到什么?!我们也可以在我们花指令后加入test/jcc指令,以达到欺骗效果。骗得跟踪者在这两条指令下断。 中断是下了,可以怎么也等不到中断。因为程序永远也不会执行到这里。相关实现很简单: myjmp proc pop eax add eax,ecx push eax ret myjmp endp start: mov ecx,offset @F- $ -10 call myjmp test eax,eax jz $+10 db '花指令' @@:;.........正常指令继续 而这时候我们会想,既然跟踪者很可能在后面两个指令下断,那我们能不能针对这个现象反击一下跟踪者哩? 嘿嘿,太阴险的想法了:P,答案是:可以实现。只要在myjmp里加入检测后面两条指令数据是否为0xcc(即int 3),一旦检测到。我们操纵程序流程跑飞程序! 具体实现如下: myjmp proc pop edx xor eax,eax mov al,byte ptr [edx] ;这里开始检测后面两条指令是否为int 3 cmp al,0cch setz al ;这里使用了Pentinum pro的条件设置指令集以使条件判断不影响流水线。所以注意测试时的CPU是否支持。一般来说都支持啦。 shl eax,8 mov al,byte ptr [edx+1] cmp al,0cch setz al shl eax,8 mov al,byte ptr [edx+2] cmp al,0cch setz al shl eax,8 mov al,byte ptr [edx+3] cmp al,0cch setz al test eax,eax setnz al add edx,eax ;一旦被下断,eax必定不为0,这样,程序便会跑飞。 add edx,ecx push edx ret myjmp endp start: mov ecx,offset @F- $ -10 call myjmp test eax,eax jz $+10 db '花指令垃圾' @@:;.........正常指令继续 这里,请注意,加入垃圾数据后,最好自己反汇编或跟踪下,看看效果,有时候加入的垃圾数据正好结束,正常指令正好开始,还是会暴露后面的关键指令的。 ------ 顺便提一下:其实如果仔细跟踪,破解花指令很简单,把垃圾数据都nop掉,再分析,正常指令便出来了。嘿嘿。但这需要:耐心++ 不敢藏私。赶紧拿出来分享。欢迎交流、拍砖。谢谢! |
|
[原创]有关花指令的一点小研究(一) (二)
谢谢推荐的技术文档,很有帮助哩! 发现里面说的更简单的技术实现同样的效果。 mov eax,2 cmp eax,3 je junk mov eax,offset @F jmp eax junk: db 0e8h @@: 有几个问题是: 因为花指令需要用在多处,则标签的定义很麻烦。 还是有很明显的jmp让人起疑。会让人有心关注跳转位置。 我想,再把这个加到myjmp函数里....... 这样,把myjmp函数搞花后。call指令回跳一般不会让人生疑,嘿嘿。而且myjmp又不那么明显。 两种类型的花指令集合,嘿嘿,反汇编器更晕了........ 而且也会让人脑迷惑的时间更长一点.... |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值