|
[求助]有关《The Shellcoder's handbook》第2章的一点疑问
system()导致新开了一个shell,他之所以要这样做,是因为前面简单调用了putenv(),这个函数只能改变当前进程的环境变量以及子进程的。 在*nix上,跟windows是不同的,加载后的栈底相对很固定,当然现在一些Linux开始不固定了。 在作者写作的环境中猜测那个addr是可行的,猜的就是栈布局。你不要套windows的东西去理解。 |
|
[求助]如何下条件断点
你那个esi指向的是heap区吧。 那我一般是先在IDA中静态向回找,找到不能再回溯的位置后,用VMware建快照逐渐逼近。你 试过用快照将esi固定下来的办法吗?我碰上你这种需求时总这么干。 |
|
|
|
[求助]如何下条件断点
OllyDbg?没试过条件硬断点,你确认你不要条件软断点吗? 如果是cdb.exe,我这么设条件硬断点: ba w 1 22222222 "j (dwo(22222222)==888) '';'gc'" |
|
[求助]这种情况如何修改内存?或者有没有工具可以实现
写程序用调试API上吧。就相当于在代码下断点,改字节,继续执行。 |
|
[原创]shellcode之小小琢磨
> 这个时候我们可以利用程序中自带的对我们所需要的函数的调用。 > (比如跳转到某处异常处理中),而程序使用者不会觉察到任何异常 第一条在实际中不是因为那些攻击者没想到要节省空间,一般他们首先追求高可移植性,就是所 谓"通用"。像你那样处理,他们的shellcode的针对性就增大了。而像这些经常搞攻击的人,到 了最后是懒得微调这种地方,套用成熟的攻击模板,熟练工种带来的审美疲劳都决定了这一点。 第二条,一般在攻击Windows时,现在多用ExitThread(),不用ExitProcess(),因为大量 victim是有SEH保护的,可以缓过劲来,至少可以暂时缓过劲来,对于那些个服务端程序,尤 为明显。这样就给了二次攻击的机会。 |
|
[求助]有关《The Shellcoder's handbook》第2章的一点疑问
1. 对 2. 根据作者的描述,他是在调整<offset>,我怀疑他的文字描述和他贴在正文中的C已经有了出入。 他演示的那个attack的argv[1]应该是<offset>和<bsize>的重合,很像是C本来就只有一个形 参。你的怀疑有道理。 3. 最终在little_array[]里啊,little_array的高址方向就是SavedEBP、RetAddr了啊。 ./victim $BUF是在用环境变量传递shellcode到little_array[] |
|
[求助]idc怎么调试的
至少可以用Message()函数,用类似C下printf()那样的调试手段。 |
|
|
|
[求助]关于CRC32
楼上这位,请教你一个问题。 原始数据"\x31\x33\x31\x34",我想知道如何通过"手工"多项式长除法得到数值 0xA817E816。 能给个原理性"手工"演示吗?多谢。 BTW,如果是那些个现成的C、ASM代码,就不必给了,全干过。 |
|
[求助]关于CRC32
(我解不了你的疑,但我可以给你一个起点,如果你最终能解答我的那个疑问,务必请你教一下我,先谢过) Ross N. Williams写过一份非常棒的文档([1])介绍CRC(Cyclic Redundancy Code)原 理。CRC的基本思路是多项式长除法。 先回忆一下小学数学中的10进制长除法: 77 +------ 74 ) 5751 518 --- 571 518 --- 53 被除数 : 5751 除数 : 74 商 : 77 余数 : 53 与之类似的2进制长除法如下: 10101101 +------------------ 1001 ) 11000010111 1001 ---- 0110 0000 ---- 1100 1001 ---- 0111 0000 ---- 1110 1001 ---- 1011 1001 ---- 0101 0000 ---- 1011 1001 ---- 010 被除数 : 11000010111 : 1519 除数 : 1001 : 9 商 : 10101101 : 173 余数 : 010 : 2 将2进制长除法过程中的"借位减法运算"换成"不借位的异或运算",就是传说中的多 项式长除法: 1011 +--------- 1101 ) 1111111 1101 ---- 0101 0000 ---- 1011 1101 ---- 1101 1101 ---- 000 被除数 : 1111111 除 数 : 1101 商 : 1011 余 数 : 000 换个方式抽象表述上面这些数字(^表示乘方): 被除数 : x^6 + x^5 + x^4 + x^3 + x^2 + x^1 + x^0 除 数 : x^3 + x^2 + x^0 商 : x^3 + x^1 + x^0 余 数 : 0 看得出,0/1对应了多项式各次项的系数。最终的多项式长除法如下: x^3 + x^1 + x^0 +----------------------------------------- x^3 + x^2 + x^0 ) x^6 + x^5 + x^4 + x^3 + x^2 + x^1 + x^0 x^6 + x^5 + x^3 --------------- x^4 + x^2 + x^1 + x^0 x^4 + x^3 + x^1 --------------- x^3 + x^2 + x^0 x^3 + x^2 + x^0 --------------- 0 多项式长除法的实质是对各次项系数做模2减法,注意-1模2后是1。这种模2减法就是 异或运算。 原始数据 : 1101011011 除数 : 10011(生成多项式,5个2进制位) 被除数 : 11010110110000(在原始数据后添加0,0的个数比除数的2进制位数少1) 进行多项式长除法运算: 1100001010 +---------------- 10011 ) 11010110110000 10011 ----- 10011 10011 ----- 00001 00000 ----- 00010 00000 ----- 00101 00000 ----- 01011 00000 ----- 10110 10011 ----- 01010 00000 ----- 10100 10011 ----- 01110 00000 ----- 1110 <= CRC 原始数据 : 1101011011 除数 : 10011(生成多项式,5个2进制位) 被除数 : 11010110110000(在原始数据后添加0,0的个数比除数的2进制位数少1) 商 : 1100001010(我们不关心商) 余数 : 1110(针对原始数据的CRC) 最终数据 : 11010110111110(原始数据+CRC) 如何选择生成多项式是个学问,对于我们来说,无需关心数学理论问题,下面是一些 现实世界使用的生成多项式: X25 : x^16 + x^12 + x^5 + x^0 : (16,12,5,0) CRC-16 : x^16 + x^15 + x^2 + x^0 : (16,15,2,0) Ethernet : x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + x^0 : (32,26,23,22,16,12,11,10,8,7,5,4,2,1,0) CRC算法的优化实现对我来说比较晦涩,大学学的东西早已还给老师,故就不误人子 弟似的在此介绍CRC算法优化背后的数学原理了。Sven Reifegerste提供了一份精彩 的C代码,演示了四种实现([11])。 > CRC32 "1314" Plain : 31 33 31 34 CRC32 : 0xA817E816 CRC32.c算出来的CRC32值与很多现成工具算出来的相一致。试图手工进行多项式长除 法得到这个结果,但总是得不到。很想知道如何通过多项式长除法得到结果,就算是 涉及一些二进制位的反序处理,也给我一个针对"\x31\x33\x31\x34"的手工计算例子 吧。可惜天下文章一大抄,没找到可答疑解惑的文章。 [ 1] A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS http://www.repairfaq.org/filipg/LINK/F_crc_v31.html http://www.repairfaq.org/filipg/LINK/F_crc_v32.html http://www.repairfaq.org/filipg/LINK/F_crc_v33.html http://www.repairfaq.org/filipg/LINK/F_crc_v34.html http://www.repairfaq.org/filipg/LINK/F_crc_v35.html (前半截讲解的非常清楚,后半截还是比较晦涩) [11] http://www.gpfn.sk.ca/~rhg/csc8550s02/crctester.c(cool) http://zorc.breitbandkatze.de/crctester.c |
|
[求助]Active X控件也能破解么?
大部分ActiveX跟普通DLL在调试时没有多少区别,你怎么调试DLL就怎么调试ActiveX控件。OllyDbg就可以。 |
|
[注意]VMware的致命BUG可导致“真正的”Windows被干掉
好像默认这个Shared Folders是Disable的。我看了看我那堆虚拟机都这样。 |
|
[求助]自用的一个DELPHI 程序,请问怎么去掉IP限制
拦一下Iphlpapi!GetAdaptersAddresses、ws2_32!gethostname,看看取回来的本机IP去向如何 |
|
[求助]如何使Skype和softICE共处
注意自校验,skype有大量自校验,你得单步跳过去之后恢复成原指令试试。我们都是用loader动态patch、运行、恢复。 loader可参考: http://www.opencjk.org/~scz/misc/200606081530.txt 自己改改begin、end、pattern。 不过即使这样也可能不能解决你的问题,我们现在也不调试分析skype了,所以未更新loader。 |
|
[求助]如何使Skype和softICE共处
regedit Siwvid BOOT_START(0) 将Siwvid改成手工启动,这样可以在不启动SoftICE的情况下正常使用Skype。 这是以前调试分析Skype时用过的,可能现在过时了,你可以先试试。 再就是你强跳过去时是硬件断点跳过去的,还是改了代码跳过去的? |
|
[求助]请教CrashDebuggers里xor esp,esp的作用
[QUOTE=petnt;419171]xor esp,esp 相当于 esp 清零 再 ret 之后 相当于让程序到 00000000 地址处去执行。 这样程序就无法继续了。 个人理解,仅供参考![/QUOTE] 不是吧。esp清零后,ret指令将导致流程转向[0h],而不是转向0h。 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值