|
[原创]161bytes的PE文件是如何炼成的
172程序 节表 rva与代码开始的值 小于0c(代码开始位置) 错误0x07b 大于0c(代码开始位置) 0x05 161程序 节表 rva与程序入口地址的值 大于48(代码开始位置) 错误0x05 rva最大48 size值 rva值 2b(当rva=1e时最小值) -1e y 2a(当rva=1f时最小值) -1f y 如果当rva<1e不成功请注意一下那个6b(size of raw data,的确要把那个包进去).. size+rva>48(代码开始位置) 也就是说节开始位置必须小于<=代码开始位置,但是 加上size之后要大于代码开始位置,也就是说代码第一个字节必须在节表里面 另外就是在文件中节的大小(virtual)一定要小于等于在内存中大小(size of raw data) ,不然报错不是win32程序 在172程序中size+rva(0c)=10>0c,也无法验证 因为size被固定成4,rva也无法取更小 (fileheader的第一项Magic开始是在0c,因此无法取更小,貌似要从fileheader开始,已经在172程序 中验证过,当取比0c更小的值即使size+rva>48也报0x07b错误) 我想了一下,将161的代码开始从0d开始写,为eb 790000(短跳转到88),结果发现 50处的size也可以改成0c(0c+4>0d&&0c<0d)和0d(0d<=0d) 应该也能一定程度证明一下我的猜想吗????? 晚上头有点晕。。可能有些不对请大神指教。。 |
|
[原创]161bytes的PE文件是如何炼成的
刚才把user32写在了11h-16h,再将节表的dllname指针指向11h,结果那里还是只能最小填2dh,填小一点的话不是也已经把user32覆盖了么? |
|
[原创]161bytes的PE文件是如何炼成的
还是没懂为什么要跳转。 直接把入口弄到88为什么不行。。 节的大小为4是说只执行完4个字节的指令比如88处的push 0就不往下执行了吗?只有jmp才能继续下去? |
|
[求助]不完全读懂汇编代码,能破解吗?
还是要一定的基础吧。 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值