吾愛破解 - LCG - LSG |安卓破解|病毒分析|破解軟件|www.2dw61quu.icu

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

搜索
查看: 6000|回復: 57
上一主題 下一主題

[原創] ELF64手脫UPX殼實戰

  [復制鏈接]
跳轉到指定樓層
樓主
一米丶陽光 發表于 2019-11-4 22:01 回帖獎勵
本帖最后由 一米丶陽光 于 2019-11-4 22:12 編輯

最近在做CTF逆向習題時,遇到一個帶有UPX殼的ELF CrackMe,題目的目標是找到flag。
由于此前只對PE做過UPX脫殼,本來使用UPX的脫殼工具,用命令就能脫殼,但是出于研究的目的,看看ELF文件的UPX如何手動脫殼,話不多說,進入正題~

0x1 工具和環境

  • IDA
  • Ubuntu18.04

0x2 尋找OEP

0x3 Dump內存文件

0x4 Dump文件代碼

#include <idc.idc>
#define PT_LOAD              1
#define PT_DYNAMIC           2
static main(void)
{
         auto ImageBase,StartImg,EndImg;
         auto e_phoff;
         auto e_phnum,p_offset;
         auto i,dumpfile;
         ImageBase=0x400000;
         StartImg=0x400000;
         EndImg=0x0;
         if (Dword(ImageBase)==0x7f454c46 || Dword(ImageBase)==0x464c457f )
  {
    if(dumpfile=fopen("G:\\dumpfile","wb"))
    {
      e_phoff=ImageBase+Qword(ImageBase+0x20);
      Message("e_phoff = 0x%x\n", e_phoff);
      e_phnum=Word(ImageBase+0x38);
      Message("e_phnum = 0x%x\n", e_phnum);
      for(i=0;i<e_phnum;i++)
      {
         if (Dword(e_phoff)==PT_LOAD || Dword(e_phoff)==PT_DYNAMIC)
                         { 
                                 p_offset=Qword(e_phoff+0x8);
                                 StartImg=Qword(e_phoff+0x10);
                                 EndImg=StartImg+Qword(e_phoff+0x28);
                                 Message("start = 0x%x, end = 0x%x, offset = 0x%x\n", StartImg, EndImg, p_offset);
                                 dump(dumpfile,StartImg,EndImg,p_offset);
                                 Message("dump segment %d ok.\n",i);
                         }    
         e_phoff=e_phoff+0x38;
      }

      fseek(dumpfile,0x3c,0);
      fputc(0x00,dumpfile);
      fputc(0x00,dumpfile);
      fputc(0x00,dumpfile);
      fputc(0x00,dumpfile);

      fseek(dumpfile,0x28,0);
      fputc(0x00,dumpfile);
      fputc(0x00,dumpfile);
      fputc(0x00,dumpfile);
      fputc(0x00,dumpfile);
      fputc(0x00,dumpfile);
      fputc(0x00,dumpfile);
      fputc(0x00,dumpfile);
      fputc(0x00,dumpfile);

      fclose(dumpfile);
        }else Message("dump err.");
 }
}
static dump(dumpfile,startimg,endimg,offset) 
{
        auto i;
        auto size;
        size=endimg-startimg;
        fseek(dumpfile,offset,0);
        for ( i=0; i < size; i=i+1 ) 
        {
        fputc(Byte(startimg+i),dumpfile);
        }
}

0x5 總結

  • 樣本來源于CTF的逆向題,各位可放心下載練習,如果有興趣,可以繼續找出目標flag,好啦,附件拿走,免費評分留下 ~
  • 鏈接: https://pan.baidu.com/s/1v_uL26C6FooLhHHSbPUhmQ 提取碼: ubmc
  • 解壓密碼:52pojie.cn

免費評分

參與人數 32吾愛幣 +28 熱心值 +27 收起 理由
THook + 1 用心討論,共獲提升!
aywl47 + 1 用心討論,共獲提升!
11987GENIUS + 1 我很贊同!
Damon尼 + 1 我很贊同!
cpj1203 + 1 [email protected]
zhangchang + 1 用心討論,共獲提升!
jmnzhlx + 1 + 1 用心討論,共獲提升!
Spwpun + 1 + 1 學習了linux調試的方法、ELF脫殼沒了解過,最近在看IDA Pro腳本編寫的部分.
chencg + 1 我很贊同!
jnez112358 + 1 + 1 [email protected]
對影三人 + 1 + 1 熱心回復!
macsun + 1 + 1 [email protected]
guojinhao + 1 用心討論,共獲提升!
yixi + 1 + 1 [email protected]
zhengyg + 1 + 1 [email protected]
gaosld + 1 + 1 用心討論,共獲提升!
1390794904 + 1 + 1 請勿灌水,提高回帖質量是每位會員應盡的義務!
LOLQAQ + 1 + 1 我很贊同!
40m41h42t + 1 + 1 [email protected]
run_boy + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
aileki + 1 + 1 [email protected]
sunnylds7 + 1 + 1 熱心回復!
hszt + 1 + 1 [email protected]
涼米飯 + 1 [email protected]
Gentlewang + 3 + 1 支持技術帖!
yaoyao7 + 1 + 1 我很贊同!
hjm666 + 1 熱心回復!
為海爾而戰 + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
itmaple + 1 我很贊同!
sumile + 1 + 1 用心討論,共獲提升!
陳世界 + 1 + 1 熱心回復!
笙若 + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!

查看全部評分

本帖被以下淘專輯推薦:

發帖前要善用論壇搜索功能,那里可能會有你要找的答案或者已經有人發布過相同內容了,請勿重復發帖。

推薦
 樓主| 一米丶陽光 發表于 2019-11-6 19:38 <
zhengyg 發表于 2019-11-6 19:34
按照您的教程我也弄出來了,好厲害,謝謝您,那個腳本怎么寫的呀,只能看懂一點點,想學的話從哪里入手好呢 ...

嘿嘿 恭喜你,要想寫那個腳本,你得先去了解一下ELF64的頭部結構,然后結合腳本代碼你就明白啦
推薦
蒼顏 發表于 2019-11-6 01:49
感謝分享                                
4#
wl960612 發表于 2019-11-4 22:47
5#
夜步城 發表于 2019-11-4 23:30
支持樓主
6#
xiao135140 發表于 2019-11-5 05:58
謝謝分享啊啊
7#
Hmily 發表于 2019-11-5 08:09
elf程序脫殼資料不多,加精鼓勵,期待更多分享。
8#
GJH588 發表于 2019-11-5 08:25
這類教程很少,期待更多的教學,支持一下
9#
 樓主| 一米丶陽光 發表于 2019-11-5 09:08 <
Hmily 發表于 2019-11-5 08:09
elf程序脫殼資料不多,加精鼓勵,期待更多分享。

謝H大,我會繼續努力
10#
yaoyao7 發表于 2019-11-5 09:37
elf脫殼的少見啊,多分享一下
11#
A-new 發表于 2019-11-5 10:20
為什么不直接用edb呢
12#
daymissed 發表于 2019-11-5 10:21
視頻學習起來更好點。感謝分享
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則 警告:禁止回復與主題無關內容,違者重罰!

快速回復 收藏帖子 返回列表 搜索

RSS訂閱|小黑屋|聯系我們|吾愛破解 - LCG - LSG ( 京ICP備16042023號 | 京公網安備 11010502030087號 )

GMT+8, 2019-12-17 11:08

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表
快手网红