CTF
  • Introduction
  • IDF 实验室
    • 牛刀小试
      • 被改错的密码
      • ASCII 码而已
      • 聪明的小羊
      • 摩斯密码
      • 啥?
    • CRYPTO 百密一疏
      • 笨笨的小猪
      • 凯撒加密
      • 孔子的学费
      • 特殊的日子
      • 伟人的名字
    • WEB天罗地网
      • COOKIE欺骗
      • 不难不易的js加密
      • 超简单的js题
      • 古老的邮件编码
      • 简单的js解密
      • 你关注最新的漏洞吗
      • 一种编码而已
    • STEGA万里寻踪
      • 图片里的秘密
      • 上帝也哭泣
      • 红与黑
    • PPC初探乾坤
      • 简单编程-字符统计
      • Fuck your brain
      • 谁是卧底
    • REVERSE倒行逆施
      • 简单的PE文件逆向
      • 简单的ELF逆向
      • python ByteCode
    • MISC包罗万象
      • 图片里的英语
      • 抓到一只苍蝇
  • 实验吧
    • WEB
      • 登陆一下好吗??
      • 注入
      • 简单的sql注入
      • Forms
Powered by GitBook
On this page
  • 题目
  • write up

Was this helpful?

  1. IDF 实验室
  2. REVERSE倒行逆施

简单的PE文件逆向

PreviousREVERSE倒行逆施Next简单的ELF逆向

Last updated 5 years ago

Was this helpful?

题目

就在这里,很简单的~虽然我不会。。= =!

write up

下载完打开后发现缺少组件,网上下载:

用PEiD查看过了,VS2008的,没有加壳。

自己猜测是,14+17的那几个数字全都转成ascii码就是了,看下write_up。看完懂了,

1

的意思不是取变量 14 开始的值,而是从数组 byte_415768 中取索引值(变量14所表示的值)的字符出来。 该数组就是:swfxc{gdv}fwfctslydRddoepsckaNDMSRITPNsmr1_=2cdsef66246087138 用python取得:

List = [1,4,14,10,5,36,23,42,13,19,28,13,27,39,48,41,42]
string="swfxc{gdv}fwfctslydRddoepsckaNDMSRITPNsmr1_=2cdsef66246087138"
for each in List:
    print(string[each],end="")

前半部分: wctf{Pe_cRackme1_

后半部分为:

把这后面依次转为ascii:

>>> List = [49,48,50,52,125]
>>> for each in List:
    print(chr(each), end="")
1024}

综上,flag为 wctf{Pe_cRackme1_1024}

【总结】

这种题不是为了爆破(话说我一开始强制让jmp到判断正确的地方),结果,不是这样干啊。

还有要求输入的flag并不就等于flag,得去用ida分析程序逻辑才行。

2
http://pan.baidu.com/s/1dDzUL0X
http://www.jb51.net/dll/msvcr100d.dll.html#down