19.gametime csaw-ctf-2016-quals

这是一个小游戏,挺有意思的

's'-->' '    'x'-->'x'   'm'-->'m'

观察流程,发现检验函数在

 1 char __usercall check_input_401507@<al>(int a1@<edx>, int a2@<ecx>, DWORD dwMilliseconds, int a4, int a5)
2 {
3 int v5; // esi
4 int v6; // ebx
5
6 v5 = a1;
7 v6 = a2;
8 print_401A73((int)"key is %s (%s)", a5, a4);
9 bks_401423();
10 print_401A73((int)"\r \r");
11 if ( v5 > 0 )
12 {
13 do
14 {
15 print_401A73((int)".");
16 Sleep(dwMilliseconds);
17 --v5;
18 }
19 while ( v5 );
20 }
21 if ( check_time_401260(v6, 500 * dwMilliseconds) )//关键
22 return 1;
23 print_401A73((int)"key is %s (%s)\r", a5, a4);
24 print_401A73((int)"UDDER FAILURE! http://imgur.com/4Ajx21P \n");
25 return 0;
26 }

检验工作交给了:401260()函数

 1 bool __fastcall check_time_401260(int a1, int t)
2 {
3 int a1_2; // edi
4 int t_2; // esi
5 int input_c; // eax
6
7 a1_2 = a1;
8 t_2 = t;
9 if ( a1 == ' ' )
10 print_401A73((int)"s\n");
11 else
12 print_401A73((int)"%c\n", a1);
13 if ( t_2 )
14 {
15 while ( !_kbhit() )
16 {
17 if ( !--t_2 )
18 goto LABEL_7;
19 }
20 input_c = _getch(); // 输入
21 }
22 else
23 {
24 LABEL_7:
25 input_c = -1;
26 }
27 return input_c != -1 && input_c == a1_2; // 相应时间内输入,并判断是否正确
28 }

最简单的方法就是修改401260()函数的返回值,nop掉失败跳,ok

 key is  (no5c30416d6cf52638460377995c6a8cf5)

攻防世界 reverse 进阶 -gametime的更多相关文章

  1. 攻防世界 reverse 进阶 APK-逆向2

    APK-逆向2 Hack-you-2014 (看名以为是安卓逆向呢0.0,搞错了吧) 程序是.net写的,直接祭出神器dnSpy 1 using System; 2 using System.Diag ...

  2. 攻防世界 reverse 进阶 10 Reverse Box

    攻防世界中此题信息未给全,题目来源为[TWCTF-2016:Reverse] Reverse Box 网上有很多wp是使用gdb脚本,这里找到一个本地还原关键算法,然后再爆破的 https://www ...

  3. 攻防世界 reverse 进阶 9-re1-100

    9.re1-100 1 if ( numRead ) 2 { 3 if ( childCheckDebugResult() ) 4 { 5 responseFalse(); 6 } 7 else if ...

  4. 攻防世界 reverse 进阶 8-The_Maya_Society Hack.lu-2017

    8.The_Maya_Society Hack.lu-2017 在linux下将时间调整为2012-12-21,运行即可得到flag. 下面进行分析 1 signed __int64 __fastca ...

  5. 攻防世界 reverse 进阶 notsequence

    notsequence  RCTF-2015 关键就是两个check函数 1 signed int __cdecl check1_80486CD(int a1[]) 2 { 3 signed int ...

  6. 攻防世界 reverse 进阶 easyre-153

    easyre-153 查壳: upx壳 脱壳: 1 int __cdecl main(int argc, const char **argv, const char **envp) 2 { 3 int ...

  7. 攻防世界 reverse 进阶 16-zorropub

    16.zorropub  nullcon-hackim-2016 (linux平台以后整理) https://github.com/ctfs/write-ups-2016/tree/master/nu ...

  8. 攻防世界 reverse 进阶 15-Reversing-x64Elf-100

    15.Reversing-x64Elf-100 这题非常简单, 1 signed __int64 __fastcall sub_4006FD(__int64 a1) 2 { 3 signed int ...

  9. 攻防世界 reverse 进阶 12 ReverseMe-120

    程序流程很清晰 1 int __cdecl main(int argc, const char **argv, const char **envp) 2 { 3 unsigned int v3; // ...

随机推荐

  1. 产品经理进阶:如何用UML的顺序图表达思想?

    当大家把UML建模语言下的各图形都有所了解后会发现,通过这些图可以全面的.立体的从各个角度表达产品,让产品的表达变得更丰富.更形象. "手中无剑.心中有剑",大多数产品人并不了解计 ...

  2. Windows 10 Emoji shortcuts

    Windows 10 Emoji shortcuts Windows 10 Emoji 快捷方式 https://support.microsoft.com/en-us/windows/windows ...

  3. 如何使用 js 实现相似图片搜索

    如何使用 js 实现相似图片搜索 以图搜图 https://www.google.com/imghp?hl=en https://www.google.com/imghp?hl=zh https:// ...

  4. Set-Cookie & Secure & HttpOnly & SameSite

    Set-Cookie & Secure & HttpOnly & SameSite HTTP/Headers/Set-Cookie Set-Cookie https://dev ...

  5. js script all in one

    js script all in one 你不知道的 js secret https://html.spec.whatwg.org/multipage/scripting.html https://h ...

  6. Sketch & UI & PS

    Sketch & UI & PS app ui https://sketchapp.com/learn https://www.sketch.com/docs/ https://ske ...

  7. Union international INC评德意志联邦投入十亿欧元重启文化娱乐产业

    当地时间6月4日,德国联邦政府宣布了一项名为"重启文化"(Neustart Kultur)的计划,将投入总计10亿欧元,用以支持德国文化及创意产业的恢复和重建. Union int ...

  8. 备战春招!开源社区系统 Echo 超全文档助力面试

    博主东南大学硕士在读,寒假前半个月到现在差不多一个多月,断断续续做完了这个项目,现在终于可以开源出来了,我的想法是为这个项目编写一套完整的教程,包括技术选型分析.架构分析.业务逻辑分析.核心技术点分析 ...

  9. scala函数至简原则是什么?

    1.return可以省略,Scala会使用函数体的最后一行代码作为返回值 2.如果函数体只有一行代码,可以省略花括号 3.返回值类型如果能够推断出来,那么可以省略(:和返回值类型一起省略) 4.如果有 ...

  10. JAVA 批量下载服务器文件到本地指定文件夹并重命名

    /** * @功能 下载文件到指定文件夹并重命名 * @param url 请求的路径 * @param filePath 文件将要保存的目录 * @param filename 保存到本地的文件名 ...