ctf.360.cn第二届,逆向部分writeup——第三题

题目:见附件

这题目是最快搞定的,提示很明确

exe直接运行出错,OD打开后,发现入口点就是一个jmp

F8,跟踪到jmp后的地址,发现了程序运行出错的原因。

实际上这个题目就是模拟病毒感染exe,修改文件入口指令,插入恶意代码的行为。

修补实际上就是找到真实的入口函数头的代码,将前面的jmp等指令nop掉。(修改OEP也行)

时间: 2024-10-05 23:37:36

ctf.360.cn第二届,逆向部分writeup——第三题的相关文章

ctf.360.cn第二届,逆向部分writeup——第四题

题目:见附件 这题开始有些小复杂了. 运行程序,可以看见界面如下 注意看"隐藏信息完毕!"字符串的位置 直接搜索push 40405c,找到代码位置401a48. 网上翻找到代码块的入口地址4017a0.很显然这是一个非常长的函数,使用IDA进行静态分析.   v2 = CreateFileA(*((LPCSTR *)v1 + 24), 0x80000000u, 1u, 0, 3u, 0x80u, 0);   if ( v2 == (HANDLE)-1 )   {     result

ctf.360.cn第二届,逆向部分writeup——第五题

题目:见附件 这是最后一题,难度加倍. 看题目意思,应该是模拟一个下载者,从网上下载一个shellcode然后执行.要求修复这个shellcode然后获得key. OD载入MFC_ASM.exe,F9出现程序界面. 由于平时写C程序访问网络都直接用socket,找了一下竟然没有发现socket调用,看了导入表,发现原来使用wininet.dll提供的http封装. (这里不知道有没有更好的方法能让OD跟踪到button按钮的用户代码调用,还请大牛不吝赐教) 直接按button,出现错误: 此时的

ctf.360.cn第二届,逆向部分writeup——第二题

题目:见附件 这题目被提示的运行两次坑了. OD载入,设置命令行参数pass.db. F8到VirtualAlloc函数,发现size参数为0,导致函数调用失败. 根据pass.db长度,设置size=0x10,F8继续. 发现CreateFileA的FileName参数依然是pass.db,修改成pas1.db. F9正常运行,得到pas1.db文件. 实际上,这里pas1.db的内容已经是答案了,受到提示影响"patch掉bug后运行两次",所以得到pas2.db后,怎么提交都不对

为了CTF比赛,如何学习逆向和反汇编?

作者:无名侠链接:https://www.zhihu.com/question/23810828/answer/138696052来源:知乎著作权归作者所有,转载请联系作者获得授权. 元旦节马上就要过去,赶紧趁着12点之前写完回答. ====如果觉得本文对你有用,请点个赞并关注一下我吧~==== 我做逆向大概四年左右,虽然我没有参加过CTF,但还是可以写一些关于如何学习逆向方面的内容~ 逆向实际上是很枯燥的工作,我能从枯燥中感到快乐,这就是支撑我学习逆向的动力了. 学习逆向后有什么用?难道就仅仅

浏览器被hao.360.cn劫持怎么办

特么的现在互联网太没节操了,一大早发现我的浏览器被hao.360.cn劫持了,弄了好久都没弄好,后来一想可能是因为qvod的原因,这可是哥当年看片的神器啊…… 废话不说: 1,进入:C:\ProgramData\QvodPlayer\QvodWebBase2,点开1.0.0.53(或者其它)文件夹3,直接删除里面的文件是删除不了的.更改QvodWebBase64.dll后缀名为QvodWebBase64.txt然后打开就没有了 会不会再出现情况,还需要再看……

桌面以及任务栏的所有浏览器,被加上了 hao.360.cn的网址

桌面以及任务栏的所有浏览器,被加上了hao.360.cn的网址 也不知道是安装了什么软件,中了360的招. 桌面以及任务栏的所有浏览器,被加上了hao.360.cn的网址. 这种东西,肯定是该死的360 周鸿祎或者及其走狗做的了. 修改方法: 1)桌面快捷方式,可以右键点击,选择属性. i) 常规 标签页,把只读属性去掉 ii) 快捷方式 标签页的[目标]里,把 http://hao.360.cn/?src=lm&ls=n4a2f6f3a91 的部分删除. 2)开始菜单 快捷方式 右键点击,然后

ISCC 2016 逆向部分 writeup

ISCC2016 逆向部分 by GoldsNow 做了这套题目感觉涨了不少的姿势..渣渣就只能够用渣渣的方法 题目下载 Help me 描述:I've got a difficult task and I can't solve it. I need your help! 思路:爆破 ELF64位的程序,直接在IDA中打开,可以看出来思路应该是比较清晰 先点进去main函数来进行分析. for ( i = 0; i <= 15; ++i ) { if ( !(v11 & 1) ) ++v5

第二届TSCTF比赛writeup及心得-Web

1. 送分题 一开始真没明白为什么叫送分题,后来明白了,泪流满面..我只想说,查看源码这个事情一辈子都不能忘. 还是推荐以后都用这个,就不会漏了 2.Do you know time 网页显示一张福利图片,下载下来,随便用二进制打开图片,翻到最后面,发现了代码,种子确定了,srand就没意义了,种子是由time()函数确定的,发到服务器上总要一点时间,所以我们用time()+30的时间做种子,然后运行程序,就差不多能撞到服务器上的time()的时间. 但是一开始死活没找到入口,我还以为有什么信息

实验吧逆向catalyst-system Writeup

下载之后查看知道为ELF文件,linux中执行之后发现很慢: 拖入ida中查看发现有循环调用 sleep 函数: 这是已经改过了,edit -> patch program -> change byte 修改一下比较参数可以去除等待时间,总共去除两处: 运行之后发现是输入 username 和 passsword 的方式: 那么问题就在两者上面了. 反编译之后查看源码,v8对应username, v7为password. 点进第一个函数,在 return 中是对用户名的判断,易推断出用户名为