Pediy CTF 2018 reverse

00401057  |. /0F87 B0000000 |ja 18a51cbc.0040110D
0040105D  |. |33DB          |xor ebx,ebx                                          ;  清空ebx
0040105F  |> |8A441C 14     |/mov al,byte ptr ss:[esp+ebx+0x14]                   ;  拿到假码的第一个字节
00401063  |. |84C0          ||test al,al                                          ;  判断拿到的是否为空
00401065  |. |74 49         ||je short 18a51cbc.004010B0                          ;  是的话 则跳转
00401067  |. |0FBEC8        ||movsx ecx,al                                        ;  把假码赋值给ecx
0040106A  |. |51            ||push ecx                                            ;  把ecx压入堆栈
0040106B  |. |8D5424 16     ||lea edx,dword ptr ss:[esp+0x16]                     ;  存储假码的地址赋值给edx
0040106F  |. |68 44804000   ||push 18a51cbc.00408044                              ;  %x
00401074  |. |52            ||push edx
00401075  |. |E8 68020000   ||call 18a51cbc.004012E2
0040107A  |. |8D7C24 1E     ||lea edi,dword ptr ss:[esp+0x1E]                     ;  存储假码的dword字节地址赋值给edi
0040107E  |. |83C9 FF       ||or ecx,-0x1                                         ;  ecx为FF
00401081  |. |33C0          ||xor eax,eax                                         ;  清空eax
00401083  |. |83C4 0C       ||add esp,0xC                                         ;  恢复堆栈
00401086  |. |F2:AE         ||repne scas byte ptr es:[edi]
00401088  |. |F7D1          ||not ecx
0040108A  |. |2BF9          ||sub edi,ecx
0040108C  |. |8D5424 28     ||lea edx,dword ptr ss:[esp+0x28]                     ;  空内存地址赋值给edx
00401090  |. |8BF7          ||mov esi,edi                                         ;  假码赋值给esi
00401092  |. |8BE9          ||mov ebp,ecx
00401094  |. |8BFA          ||mov edi,edx
00401096  |. |83C9 FF       ||or ecx,-0x1
00401099  |. |F2:AE         ||repne scas byte ptr es:[edi]
0040109B  |. |8BCD          ||mov ecx,ebp
0040109D  |. |4F            ||dec edi
0040109E  |. |C1E9 02       ||shr ecx,0x2
004010A1  |. |F3:A5         ||rep movs dword ptr es:[edi],dword ptr ds:[esi]
004010A3  |. |8BCD          ||mov ecx,ebp
004010A5  |. |83E1 03       ||and ecx,0x3
004010A8  |. |43            ||inc ebx                                             ;  开始计数 自增1
004010A9  |. |83FB 11       ||cmp ebx,0x11                                        ;  比较是否为0x11
004010AC  |. |F3:A4         ||rep movs byte ptr es:[edi],byte ptr ds:[esi]        ;  把假码的十六进制字节赋值给edi的地址中的值
004010AE  |.^|7C AF         |\jl short 18a51cbc.0040105F
004010B0  |> |8D7424 4C     |lea esi,dword ptr ss:[esp+0x4C]                      ;  esi存储真码的值
004010B4  |. |8D4424 28     |lea eax,dword ptr ss:[esp+0x28]                      ;  eax存储假码的值
004010B8     |8A10          |/mov dl,byte ptr ds:[eax]                            ;  dl存储真码的第一个字节
004010BA  |. |8A1E          ||mov bl,byte ptr ds:[esi]                            ;  bl存储假码的第一个字节
004010BC  |. |8ACA          ||mov cl,dl                                           ;  假码放到cl
004010BE  |. |3AD3          ||cmp dl,bl                                           ;  比较真码和假码,都为一字节
004010C0  |. |75 1E         ||jnz short 18a51cbc.004010E0                         ;  错误则跳
004010C2  |. |84C9          ||test cl,cl                                          ;  检查cl是否为空
004010C4  |. |74 16         ||je short 18a51cbc.004010DC
004010C6  |. |8A50 01       ||mov dl,byte ptr ds:[eax+0x1]
004010C9  |. |8A5E 01       ||mov bl,byte ptr ds:[esi+0x1]
004010CC  |. |8ACA          ||mov cl,dl
004010CE  |. |3AD3          ||cmp dl,bl
004010D0  |. |75 0E         ||jnz short 18a51cbc.004010E0
004010D2  |. |83C0 02       ||add eax,0x2
004010D5  |. |83C6 02       ||add esi,0x2
004010D8  |. |84C9          ||test cl,cl
004010DA  |.^|75 DC         |\jnz short 18a51cbc.004010B8
004010DC  |> |33C0          |xor eax,eax
004010DE  |. |EB 05         |jmp short 18a51cbc.004010E5
004010E0  |> |1BC0          |sbb eax,eax
004010E2  |. |83D8 FF       |sbb eax,-0x1
004010E5  |> |85C0          |test eax,eax
004010E7  |. |75 12         |jnz short 18a51cbc.004010FB
004010E9  |. |68 38804000   |push 18a51cbc.00408038                               ;  success!\n
004010EE  |. |E8 58020000   |call 18a51cbc.0040134B
004010F3  |. |83C4 04       |add esp,0x4
004010F6  |.^|E9 1FFFFFFF   |jmp 18a51cbc.0040101A
004010FB  |> |68 30804000   |push 18a51cbc.00408030                               ;  wrong!\n
00401100  |. |E8 46020000   |call 18a51cbc.0040134B
00401105  |. |83C4 04       |add esp,0x4
00401108  |.^|E9 0DFFFFFF   \jmp 18a51cbc.0040101A
0040110D  |> \68 30804000   push 18a51cbc.00408030                                ;  wrong!\n
00401112  |.  E8 34020000   call 18a51cbc.0040134B
00401117  |.  A1 94804000   mov eax,dword ptr ds:[0x408094]
0040111C  |.  83C4 04       add esp,0x4
0040111F  |.  48            dec eax
00401120  |.  5F            pop edi                                               ;  ntdll.7C930228
00401121  |.  5E            pop esi                                               ;  ntdll.7C930228
00401122  |.  5D            pop ebp                                               ;  ntdll.7C930228
00401123  |.  A3 94804000   mov dword ptr ds:[0x408094],eax
00401128  |.  5B            pop ebx                                               ;  ntdll.7C930228
00401129  |.  78 0A         js short 18a51cbc.00401135
0040112B  |.  FF05 90804000 inc dword ptr ds:[0x408090]                           ;  18a51cbc.0040AE89
00401131  |.  83C4 60       add esp,0x60
00401134  |.  C3            retn

原文地址:https://www.cnblogs.com/zpchcbd/p/12305948.html

时间: 2024-11-05 15:45:28

Pediy CTF 2018 reverse的相关文章

【CTF】Reverse CSC2015 120

来源: Cyber Security Challenge 2015 题目:Crackme 类型: Reverse 分数: 120 难度:中(难中易三个级别) 描述: We found this binary, but we lost the password. Please retrieve it for us. 题目链接:https://github.com/ctfs/write-ups-2015/tree/master/cyber-security-challenge-2015/revers

【CTF】Reverse [email protected]

来源: 360 CTF 2014 Reverse20 说明:已在压缩包中给定了一个用ReverseMe.exe加密过后的文件:密文.db请分析ReverseMe.exe的算法,写出解密算法,解密该文件得到Key.该Exe里有一个bug,导致exe无法运行:提示:你有两种方法得到该Key:1.找到bug,patch掉之后,运行两次该程序即可解密文件得到key.2.老老实实的逆这个简单的算法,写出一个解密程序,解密. 答案: [CTF]Reverse [email protected]

【CTF】Reverse Backdoor 2015 Echo

来源: Backdoor CTF 2015 Little Suzie started learning C. She created a simple program that echo's back whatever you input. Here is the binary file. The vampire came across this service on the internet. nc hack.bckdr.in 8002. Reports say he found a flag

攻防世界 reverse 新手练习区

1.re1 DUTCTF IDA shift+F12 查看字符串 DUTCTF{We1c0met0DUTCTF} 2.game ZSCTF zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t} 3.Hello, CTF  Pediy CTF 2018 CrackMeJustForFun 将16进制字符串转ascii字符串得到flag 4.open-source HackYou CTF 参数 51966 25 h4cky0u flag为:

支酸权我据好张近拉其深就率sJFlzqgrA

社保划到税务征收,将大大提升社保费的征管效率.税务的征管能力是目前而言最强的,以后税务征收社保不是代收,属于本职了. 之前税局要把社保信息和交个税的工资比对起来有困难!现在好了,个税是自己的,社保也是自己的,比对困难?不存在的! 这一变革,会给那些不给员工上社保.不全额上社保的企业致命一击! 最新案例 前段时间的发改委关于限制特定严重失信人乘坐民航的一则意见--发改财金[2018]385号,其中还有税务总局的联合署名. http://weibo.com/20180408PP/2309279811

BJDCTF 2nd Writeup

fake google 随便输点什么,url来看不是php,原样回显 那很有可能是ssti了,试试{{config}}有回显,直接打个python3的payload试试 {{().__class__.__bases__[0].__subclasses__()[177].__init__.__globals__.__builtins__['open']('/flag').read()}} 拿到flag old-hack 进去后看到是tp5,题目名字又叫old-attack,也没扫到源码,估计是现成

如何将C/C++程序转译成Delphi(十四)

众所周知,数据科学是这几年才火起来的概念,而应运而生的数据科学家(data scientist)明显缺乏清晰的录取标准和工作内容.此次课程以<星际争霸II>回放文件分析为例,集中在IBM Cloud相关数据分析服务的应用.面对星际游戏爱好者希望提升技能的要求,我们使用IBM Data Science Experience中的jJupyter Notebooks来实现数据的可视化以及对数据进行深度分析,并最终存储到IBM Cloudant中.这是个介绍+动手实践的教程,参会者不仅将和讲师一起在线

世界著名设计小组nrg推荐的75个FLASH酷站

众所周知,数据科学是这几年才火起来的概念,而应运而生的数据科学家(data scientist)明显缺乏清晰的录取标准和工作内容.此次课程以<星际争霸II>回放文件分析为例,集中在IBM Cloud相关数据分析服务的应用.面对星际游戏爱好者希望提升技能的要求,我们使用IBM Data Science Experience中的jJupyter Notebooks来实现数据的可视化以及对数据进行深度分析,并最终存储到IBM Cloudant中.这是个介绍+动手实践的教程,参会者不仅将和讲师一起在线

铺揭竟冒剐惹蒲掷咕堑接veld

IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜. 据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow.Twitter.Reddit.IEEE Xplore.GitHub.CareerBuilder 等,对 48 种语言进行排行. 与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果.考虑到典型的 Spectrum 读者需求