难题:OD不能正常保存该文件
新年来了:礼物没送上,给大家放个难题,会弄的就自己试试,不会的等大牛级的人马来弄,假如有兴趣的也不妨下来玩玩。续:对ICG大牛教程的不解
之前,我试过对一个按键精灵脚本软件实行去时间的限制,可是没成功。
后来,我发现了2处地方。都可以改时间的,可以延长时间的:
1:
7C80244B |.6A 00 push 0 ; /Alertable = FALSE
7C80244D |.FF75 08 push dword ptr ss: ; |Timeout = 60000. ms
当时EBP的值是01E4FF88(这个值是会变的),加上8后的地址就成了:01E4FF90 (汇编码为pushad)
经过二进制编辑后,是 60。
这个软件的限制使用时间为6分钟,即6000MS,所以,把只有一个“60”变成N个“60”可以达到延长时间的效果。
修改过后:
7C802449 |.8BEC mov ebp,esp
7C80244B |.6A 00 push 0 ; /Alertable = FALSE
7C80244D |.FF75 08 push dword ptr ss: ; |Timeout = 1616928864. ms
7C802450 |.E8 4BFFFFFF call kernel32.SleepEx ; \SleepEx
结果保存后,生成一个kernel32.dll。
重新载入后,看到的还是6000MS。没有改变过任何东西。
本以为不能这样修改,就试行了第2种方法:
7C802450 |.E8 4BFFFFFF call kernel32.SleepEx ; \SleepEx //跟进
会发现
7C8023EB FF15 C814807C call dword ptr ds:[<&ntdll.N>; \ //这个CALL会使OD运行
经过NOP后,走下几步,会到另外的地方:
769AE31D .56 push esi
769AE31E .BE F86DAB76 mov esi,ole32.76AB6DF8
769AE323 >FF35 C86EAB76 push dword ptr ds: ; /Timeout = 60000. ms //延迟时间 6分钟
769AE329 .FF15 F0129976 call dword ptr ds:[<&KERNEL3>; \Sleep //延时停止。程序运行
769AE32F .8BCE mov ecx,esi ;!! //NOP上面那个CALL后停在这里
769AE331 .E8 C6EEFFFF call ole32.769AD1FC
769AE336 .833D A86EAB76 00 cmp dword ptr ds:,>
769AE33D .A1 AC6EAB76 mov eax,dword ptr ds:[76AB6E>
769AE342 .8B0D B46EAB76 mov ecx,dword ptr ds:[76AB6E>
保存复制的结果。还是生成kernel32.dll。
重新载入OD,同样没任何变化,改的东西全还原了。
请大牛们指导下。
地址:http://d.namipan.com/d/7cde579f916a4698bb8d2973aae6f858a2148215d3883d00 ......这是系统DLL你保存啥.....这些参数都是从程序领空里传过来的,你需要返回到程序领空里找地址修改.还有禁止留下联系方式! 你现在是改系统DLL了,系统在用着这文件,所以不能保存。再说,你不怕系统崩溃吗? 谢谢Hmily。 还是不行的。
Hmily大牛的想法是美好的。但实现起来确实是不行! 学习 学习!! :shutup:系统DLL都给保存出来了 没人能搞定这个东西。
呵呵。大H又不出手,小生又不在。 曾经无数次想搞定的按键精灵。。。
页:
[1]
2