|
[原创]路由器另类玩法之提取根文件系统映像并解包
逆出来然后山寨,电子产品做山寨的很多,把国外原厂产品的价格都给拖下来了,现在电子产品降价那么厉害,这也算是一大贡献吧 |
|
[原创]路由器另类玩法之提取根文件系统映像并解包
嗯,这个国外其实研究比较多的,像BlackHat的文章就比较多, 解包只是第一步,后面的工作还要看逆向功底的, 主要是带了更多的人入门了,现在玩arm之类的人也多了, 我想说的是,举个例子吧,以前玩外挂的人少,随便一个外挂都很赚钱,然后网上很难找到相关的教程 然后可能有的业余人士可能偶然发现了外挂的做法,慢慢的一大波人都会了,竞争就很大了,这一行就比较烂了,当然现在技术精依然赚钱,变成精英路线了 我感觉啊,最关键的问题是中国人太多了,现在各行各业竞争都很大,任何一行都得学得足够精才行 |
|
|
|
[争议帖]团够IDA por 6.6 ARM X86 X64啦 还差3人
你是不是算错了,官网的价格是这样的 IDA Pro Named License+3个插件的价格是5599美元=34633元 hexrays插件是买一个其他2个半价 |
|
[争议帖]团够IDA por 6.6 ARM X86 X64啦 还差3人
报个名,qq********** |
|
[求助]多年底层经验,求大牛师傅带,费用详谈
思科IOS的逆向你熟悉吗,作为交换我能帮解答一些WIN平台的问题 |
|
|
|
#Phrack67#The House Of Lore: Reloaded ptmalloc v2 & v3
我怎么感觉看着挺奇怪的呢,不过翻译是件麻烦事,我以前忽然想翻译个资料,现在都没弄完 到Phrack上看了一下原文,我按自己的语言习惯再理顺一下 文章是说malloc的一个溢出漏洞,这个漏洞跟普通的溢出不一样,只有在按一定的顺序调用malloc和free时才会出现,所以把这个漏洞的利用方法起了个名字叫The House of Lore(THOL)。 然后说了malloc的实现原理,从中找出了漏洞,malloc函数是在C库里面的,linux的C库是GlibC,编译glibc是件麻烦事,ptmalloc中包含malloc,所以就编译静态库ptmalloc2,直接链接这个静态库,ptmalloc有ptmalloc2和ptmalloc3两个版本。 为了方便调试,要修改malloc函数,把执行时分配的空间地址用printf打印出来。 根据malloc请求分配内存大小分为largebin和smallbin,使用checked_request2size检查大小,当请求的内存大于512字节时,称为largebin,使用“最佳适应算法”,对空闲内存空间根据大小排序,从中选择能满足要求的最小空间;当请求小于64字节时,称为smallbin,会从最近释放的空间中分配;当空闲区间大小在两者之间时,为两种办法的折衷。 1.smallbin的情况 所谓bin是指一个双向链表,由bk和fd组成,bk即back,为向后的指针,fd即forward,为向前的指针, 可用的内存空间是使用空闲链表连接的,当一块空间被释放时,其实并没有真正释放,只是修改了指针,放入了空闲链表的顶端,还可以使用victim->bk指针访问。当请求smallbin的时候,会先尝试使用空闲链表的顶端的空间,这块空间没有进行排序,为unsorted_chunks,如果大小不够才使用最佳适应算法先进行排序。由于每次都是对空闲链表顶端进行操作,这个链表可以视为一个栈,那么这样的溢出就算是栈溢出了。 thl.c 是一个示例程序,依次调用了 buff2 = (char *) malloc(128); free(buff2); lb1 = (char *) malloc(128); free(buff2)之后,buff2这128字节就在空闲链表中了,而lb1正好128字节,所以lb1的空间就是原来buff2所在空间。 从Buff2 -> [ 0x8050000 ]和LB1 -> [ 0x8050000 ]可以看出Buff2与LB1是同一段空间。 这样做是不安全的,那么怎么攻击呢? 如果我们用strcpy修改掉buff2.bk指针,我们就能改变分配给lb1的内存地址,我们选择一段包含func1返回地址的空间,这样就能覆盖掉func1的返回地址,让程序跳到evil_code执行! 2.largebin的情况,其实也差不多,稍复杂一点,不说了 “exploit”是漏洞利用的意思 "我们决定直接从以下网址中下载ptmalloc2的来源" 翻译成”下载ptmalloc2的源代码“ (source code 在计算机中一般指代码) "这块代码将会触发在本文中提到的易损性" 解释为 脆弱性,容易被攻击 ”我们要先享受一下把一对调试程序引进库里面。为了达到这点,我们用了一个不是对于每个人都可行的函数,(one has to be very eleet to know it and only those who have been able to escape to Matrix have the right to use it)“ 这是开了个玩笑,“我们要先添加一些调试语句,我们需要用到一个不是谁的能用的高级函数,一个人必须特别聪明才知道这个,要有能从《黑客帝国》的矩阵中逃脱的本事的人才有资格用它,这个函数就是printf" "我从没见过这么无知的人, 从他那里我学不到任何的东西。" 这句有歧义,可以说“从任何人身上我都能学到东西” “我们想运行的"evil_func( )"函数永远不会被调用” 翻译成 “evil_func是一个从来没被调用的函数,但我们想让它运行” “我们可以从文件编制中知道” 翻译成“我们可以从文档中知道“,(documentation在计算机中一般指官方的帮助文档) |
|
[原创]量子计算机出现之前,越快越密就是对称加密王者(限磁盘数据)
我觉得密码学的东西没有多大商用价值,再怎么宣传也没什么用,可能国家部门会需要 |
|
[原创]这样证明严谨吗?
这个很久以前就见过了,在波利亚的书上看到的。 在三角形中做一个角的角平分线和对边的垂直平分线, 那么那两条线一定相交在外接圆,证明如下: 在三角形ABC中,做角A的角平分线,与外接圆的交点为P,做BC的垂直平分线,与外接圆的交点为Q, 在圆里等角所对的边相等,所以BP=CP BC的垂直平分线到B、C的距离相等,所以BQ=CQ 所以点P和点Q重合。 |
|
win32注册热键
DefWindowProc本来就什么都不做的 DefWindowProc会做很多事情的 应该用postmessage 把这个消息继续传递下去。 不论postmessage、sendmessage还是keybd_event都会被热键拦截的,又到case WM_HOTKEY来了,所以是死循环。 我想了半天最后觉得消息不可能继续传递的, 比如我开一个记事本,在里面按一个键,本来发给记事本的消息被热键拦截了,然后发给我的程序, 消息里的目标窗口是我的程序窗口,而不是记事本,所以从我的程序收到消息开始就已经不知道消息原本是要发向记事本的了,所以不能继续传递了。 就用钩子吧 SetWindowsHookEx(WH_KEYBOARD_LL, &KbProc,GetModuleHandle(NULL),0); LRESULT CALLBACK KbProc(int nCode,WPARAM wParam,LPARAM lParam) { if(wParam == WM_KEYDOWN) { if(pKey->vkCode ==VK_RIGHT) ..... return CallNextHookEx(g_kb_hook,nCode,wParam,lParam); |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值