精华内容
下载资源
问答
  • UPX Shell (整合 UPX 3.08)

    2013-07-06 23:48:15
    UPX Shell 是 UPX 的图形界面程序,并且增强了 UPX 的功能,使用更加方 便。原版程序已内置了 UPX 1.25、UPX 2.03 和 UPX 2.92b 压缩引擎模块,现 UPX 3.02 压缩引擎发布已久,却迟迟不见 UPX Shell 的更新。虽然将...
  • upx 分析

    2016-09-01 13:58:35
    下载地址 可以直接编译 http://download.csdn.net/detail/cracklyly/9618936 有时间吧代码分析下

    下载地址 可以直接编译

    http://download.csdn.net/detail/cracklyly/9619803

    有时间吧代码分析下

    展开全文
  • 傻瓜式的UPX脱壳软件UPX-Ripper

    千次阅读 2006-08-31 11:57:00
    这样的软件很多,但是这个算是傻瓜式了,呵呵我用它脱了[音速启动(VStart) ]的壳,彻底暴露了....看看界面吧: 

    这样的软件很多,但是这个算是傻瓜式了,呵呵

    我用它脱了[音速启动(VStart) ]的壳,彻底暴露了....

    看看界面吧:

     

     

    展开全文
  • UPX脱壳详细分析

    千次阅读 2010-11-16 14:21:00
    文章标题】: UPX脱壳详细分析 【文章作者】: index09 【使用工具】: UPX + OD + Stud_PE + Import REC -------------------------------------------------------------------------------- 【详细过程】 又被R...

    文章标题】: UPX脱壳详细分析
    【文章作者】: index09
    【使用工具】: UPX + OD + Stud_PE + Import REC
    --------------------------------------------------------------------------------
    【详细过程】
    又被R公司鄙视了,每次都被相同的理由鄙视。哭……
    于是决定好好学一下逆向了。
    首先做个幼儿级的脱壳练习,当做开始吧。
    网上有很多类似文章,基本只写了找OEP的过程,这里稍加分析,高手莫笑。


    用UPX加密记事本,简单用Stud_PE查看一下节表信息。
    No | Name      | VSize      | VOffset    | RSize      | ROffset    | Charact.   |
    01 | UPX0      | 0000F000   | 00001000   | 00000000   | 00000400   | E0000080   |
    02 | UPX1      | 00005000   | 00010000   | 00004600   | 00000400   | E0000040   |
    03 | .rsrc     | 00008000   | 00015000   | 00007200   | 00004A00   | C0000040   |
    看样子没有加密资源

    OD载入后如下
    01014241   . BE 00000101   MOV ESI,NOTEPAD.01010000                 ; esi = sec upx1
    01014246   . 8DBE 0010FFFF LEA EDI,DWORD PTR DS:[ESI+FFFF1000]      ; edi = sec upx0
    0101424C   . 57            PUSH EDI
    0101424D   . 83CD FF       OR EBP,FFFFFFFF
    01014250   . EB 10         JMP SHORT NOTEPAD.01014262
    分别把 UPX1和UPX0节的首地址放入了esi和edi
    上面看到UPX0段的RSize为0,猜想是释放解压数据的空间。而UPX1段应该就是加密的程序代码了。

    继续向下看
    01014258   > /8A06          MOV AL,BYTE PTR DS:[ESI]                 ; //
    0101425A   . |46            INC ESI
    0101425B   . |8807          MOV BYTE PTR DS:[EDI],AL
    0101425D   . |47            INC EDI
    0101425E   > |01DB          ADD EBX,EBX
    01014260   . |75 07         JNZ SHORT NOTEPAD.01014269               ; express data in sec upx1 to sec upx0
    01014262   > |8B1E          MOV EBX,DWORD PTR DS:[ESI]
    01014264   . |83EE FC       SUB ESI,-4
    01014267   . |11DB          ADC EBX,EBX
    01014269   >^/72 ED         JB SHORT NOTEPAD.01014258
    0101426B   . B8 01000000   MOV EAX,1
    01014270   > 01DB          ADD EBX,EBX
    01014272   . 75 07         JNZ SHORT NOTEPAD.0101427B
    01014274   . 8B1E          MOV EBX,DWORD PTR DS:[ESI]
    01014276   . 83EE FC       SUB ESI,-4
    01014279   . 11DB          ADC EBX,EBX

    .......

    0101431A   > /8A07          MOV AL,BYTE PTR DS:[EDI]                 ; /
    0101431C   . |47            INC EDI
    0101431D   . |2C E8         SUB AL,0E8                               ; find [edi] <= 0xE9 && [edi+1] == 1
    0101431F   > |3C 01         CMP AL,1
    01014321   .^ 77 F7         JA SHORT NOTEPAD.0101431A
    01014323   . |803F 01       CMP BYTE PTR DS:[EDI],1
    01014326   .^/75 F2         JNZ SHORT NOTEPAD.0101431A               ; .........................
    01014328   . 8B07          MOV EAX,DWORD PTR DS:[EDI]
    0101432A   . 8A5F 04       MOV BL,BYTE PTR DS:[EDI+4]
    0101432D   . 66:C1E8 08    SHR AX,8
    01014331   . C1C0 10       ROL EAX,10                               ; edi = A B C D
    01014334   . 86C4          XCHG AH,AL                               ; eax = 0 C B A
    01014336   . 29F8          SUB EAX,EDI
    01014338   . 80EB E8       SUB BL,0E8
    0101433B   . 01F0          ADD EAX,ESI                              ; eax = edi offset to sec upx0 + eax
    0101433D   . 8907          MOV DWORD PTR DS:[EDI],EAX
    0101433F   . 83C7 05       ADD EDI,5
    01014342   . 88D8          MOV AL,BL
    01014344   .^ E2 D9         LOOPD SHORT NOTEPAD.0101431F             ; ...........................................
    一大堆都是从UPX1中读取数据,做一些处理,并且放入UPX0中。
    应该是UPX的解压算法。具体算法比较复杂没有详细的分析。
    里面的EBX控制了每一步解压应该做的操作,十分好奇这个数是怎么出来的。改天看看UPX的源代码,看看它神奇的压缩算法。
    看雪上有一篇对算法的分析,有兴趣请自行搜索。

    然后来到了这里
    01014346   . 8DBE 00200100 LEA EDI,DWORD PTR DS:[ESI+12000]         ; //IAT
    0101434C   > 8B07          MOV EAX,DWORD PTR DS:[EDI]               ; edi = upx import table??
    0101434E   . 09C0          OR EAX,EAX
    01014350   . 74 3C         JE SHORT NOTEPAD.0101438E                ; jmp out
    01014352   . 8B5F 04       MOV EBX,DWORD PTR DS:[EDI+4]
    01014355   . 8D8430 24AE01>LEA EAX,DWORD PTR DS:[EAX+ESI+1AE24]     ; eax = lib name
    0101435C   . 01F3          ADD EBX,ESI                              ; ebx = esi + 4-7 (ori IAT??)
    0101435E   . 50            PUSH EAX
    0101435F   . 83C7 08       ADD EDI,8
    01014362   . FF96 ECAE0100 CALL DWORD PTR DS:[ESI+1AEEC]            ; loadlibrary
    01014368   . 95            XCHG EAX,EBP                             ; ebp = lib handle
    01014369   > 8A07          MOV AL,BYTE PTR DS:[EDI]
    0101436B   . 47            INC EDI
    0101436C   . 08C0          OR AL,AL
    0101436E   .^ 74 DC         JE SHORT NOTEPAD.0101434C
    01014370   . 89F9          MOV ECX,EDI
    01014372   . 57            PUSH EDI                                 ; proc name
    01014373   . 48            DEC EAX
    01014374   . F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
    01014376   . 55            PUSH EBP                                 ; lib handle
    01014377   . FF96 F0AE0100 CALL DWORD PTR DS:[ESI+1AEF0]            ; getprocaddress
    0101437D   . 09C0          OR EAX,EAX
    0101437F   . 74 07         JE SHORT NOTEPAD.01014388
    01014381   . 8903          MOV DWORD PTR DS:[EBX],EAX
    01014383   . 83C3 04       ADD EBX,4
    01014386   .^ EB E1         JMP SHORT NOTEPAD.01014369               ; ............................................
    这里有两重循环,分别从UPX1中读取dll名称,使用LoadLibrary加载入内存。
    获得句柄后,再从UPX1中读取相应函数名,使用GetProcAddress获得函数地址。
    01014381   . 8903          MOV DWORD PTR DS:[EBX],EAX
    这一句将函数地址填入了源程序的IAT,完成了IAT的填充。
    从这段代码中可以获得IAT的RVA,为0x10000。记下来留着以后修复IAT时使用。

    继续往下
    0101438E   > /8BAE F4AE0100 MOV EBP,DWORD PTR DS:[ESI+1AEF4]
    01014394   . 8DBE 00F0FFFF LEA EDI,DWORD PTR DS:[ESI-1000]
    0101439A   . BB 00100000   MOV EBX,1000
    0101439F   . 50            PUSH EAX
    010143A0   . 54            PUSH ESP
    010143A1   . 6A 04         PUSH 4                                   ; PAGE_EXECUTE_READWRITE
    010143A3   . 53            PUSH EBX
    010143A4   . 57            PUSH EDI                                 ; set file header to PAGE_EXECUTE_READWRITE
    010143A5   . FFD5          CALL EBP                                 ; virtualprotect
    010143A7   . 8D87 FF010000 LEA EAX,DWORD PTR DS:[EDI+1FF]
    010143AD   . 8020 7F       AND BYTE PTR DS:[EAX],7F                 ; remove sec UPX0 UNINITIALIZED_DATA character
    010143B0   . 8060 28 7F    AND BYTE PTR DS:[EAX+28],7F              ; remove sec UPX1 UNINITIALIZED_DATA character
    010143B4   . 58            POP EAX
    010143B5   . 50            PUSH EAX
    010143B6   . 54            PUSH ESP
    010143B7   . 50            PUSH EAX
    010143B8   . 53            PUSH EBX                                 ; set to old protect
    010143B9   . 57            PUSH EDI
    010143BA   . FFD5          CALL EBP                                 ; virtualprotect
    这里首先使用VirtualProtect把文件头设置为PAGE_EXECUTE_READWRITE,获得文件头的写权限。
    然后
    010143AD   . 8020 7F       AND BYTE PTR DS:[EAX],7F                 ; remove sec UPX0 UNINITIALIZED_DATA character
    010143B0   . 8060 28 7F    AND BYTE PTR DS:[EAX+28],7F              ; remove sec UPX1 UNINITIALIZED_DATA character
    去除了节表中UPX0和UPX1段的UNINITIALIZED_DATA属性,完成了节表的初始化。有些版本UPX并没有这段代码。
    最后又用VirtualProtect恢复文件头属性。


    再往下看是一个大大的JMP
    010143CB   .- E9 CD2FFFFF   JMP NOTEPAD.0100739D                     ; jmp to OEP
    跳转到OEP

    记下OEP的RAV为739D。
    使用LoadPE在OEP处Dump出镜像文件。

    使用ImportREC修复一下IAT
    IAT的起始地址为刚才记下的0x10000,通过观察那段内存得到IAT大小为0x344
    在ImportREC的IAT Infos Needed中填入我们获得的信息,便可以成功修复。

    测试一下脱出来的镜像,可以正确运行。

    当然你可以在找到OEP时直接用OllyDump插件直接脱壳和修复IAT。这里只是为了练手小小的绕了个弯。
    有兴趣的同学欢迎交流。

    --------------------------------------------------------------------------------

                                                           2009年08月30日 15:59:39

    为了您的安全,请只打开来源可靠的网址

    打开网站    取消

    来自: http://hi.baidu.com/index09/blog/item/caf196228dc9eefad6cae211.html
    展开全文
  • UPX加壳、免杀、添加花指令是一款用于制作免杀的给力的工具。使用该软件可以进行软件的UPX加壳、E语言免杀、添加花指令。如果你正在为自己制作的软件过不了杀毒,那么赶快使用这款神器吧。
  • 这次又碰到upx is not available 在网上找了很多方法,基本是要下载UPX.exe 然后解压把他放到环境的script那里去 我的环境是 然后终于打包成功了!!! 但是,又有了新的问题...继续填坑吧 ...

    pyinstaller的坑是真的多啊

    这次又碰到upx is not available

    在网上找了很多方法,基本是要下载UPX.exe

    然后解压把他放到环境的script那里去

    我的环境是

     

    然后终于打包成功了!!!

     

    但是,又有了新的问题...继续填坑吧

    展开全文
  • 在做CTF-RE题的时候,下载的题目附件会发现缺少函数方法的现象,说明这个文件就被加壳处理了; 这个是加壳状态下的; 脱壳后~~~~~~~ 如何发现是加壳的呢? 除了开头所描述的方法,还有第二种...输入upx.exe -h 有如下反应:
  • 火山PC调用UPX压缩壳

    2020-11-10 13:20:24
    前言: 时时回调显示没能搞定,就先这样吧,也还不错,使用了最新的3.96版,选择最高压缩级别,可将14M的程序压缩到3M以内。 本章也涉及线程、拖放文件、动态创建等知识。 一、配置模块 右键配置,勾选火山模块,...
  • UPX加壳、免杀、添加花指令是一款用于制作免杀的给力的工具。使用该软件可以进行软件的UPX加壳、E语言免杀、添加花指令。如果你正在为自己制作的软件过不了杀毒,那么赶快使用这款神器吧。加花方法:1.直接加花记住...
  • 使用很简单,把获取的upx.exe放在pyinstaller目录下就可以了。 再次尝试打包: INFO: UPX is available. 看来UPX压缩已经激活了。 转载于:https://www.cnblogs.com/jackadam/p/8412518.html
  • 190505 逆向-DDCTF2019(Reverse)

    千次阅读 2019-05-06 00:08:37
    咕咕咕咕咕 ...通过段名发现是UPX壳,upx -d脱壳后进行分析 核心函数只是通过data数组做一个转置,反求index即可 值得一说的是data的地址与实际数组有一些偏移 由于输入的可见字符最小下标就是空格的0...
  • 不过这次比较简单,翻译一下是要求让程序正确运行即可查壳发现又有UPXupx -d脱下后就能进IDA静态分析了先运行试试,发现报Exe Corrupted,跟AutoHotKey一样嘛,应该还是自校验吧~ 那我看看源程序,结果
  • 1625-5 王子昂 总结《2017年9月29日》 【连续第362天总结】...查壳发现有UPX 用ESP定律手脱下来以后拖入IDA发现main函数块巨大,反编译会一直等待 拖入OD进行跟踪,发现在exit前,位于44ab75的call会飞 跟进去以后是
  • 1625-5 王子昂 总结《2018年1月28日》 【连续第485天总结】 A. ichunqiu-SimpleGame ...言归正传,首先查壳,发现UPX,轻松脱掉进行反编译 通过fgets接收输入以后,首先两个格式check,之后执行三个函数要求全不
  • 170626 逆向-Crackme之005

    2017-06-26 20:27:22
    终于在XP中成功脱掉UPX的壳了,OD+DEDE动静结合看吧 DEDE中显示出有这些事件,逐个识别分析 两个计时器,Timer1是用来使四张图片循环滚动的;Timer2点开就是一堆cmp,猜测这个就是最终通过的地方了,到OP中...
  • [Toddler's Bottle]flag

    2016-04-28 22:03:19
    好吧,一个用upx压缩后的64位elf,拿着原文件看了半天啥都没看出来。。最后只能找别人的答案了。。。upx介绍https://zh.m.wikipedia.org/wiki/UPX解题upx -d flag 然后拿出来到IDA里边有一个flag直接就找到了
  • 这个比较简单就简单写点吧 第一步还是查壳upx壳,在upx的官网下载程序,然后程序里面附有文档。用upx -d来脱壳。脱壳完成之后拖入IDA,flag字符串能够直接看到。没了。 ...
  • rx的任务

    2020-10-21 22:52:34
    **rx的任务 ** moectf: Protection 文件的脱壳 下载后是这样的 拖入文件格式分析器后发现是linux下的文件格式 ...下载好upx后用upx -d命令脱壳 脱壳成功(已经脱过了) 拖入IDA显示这个样子 看着...
  • 用PyInstaller将python...PyInstaller的作用如标题所说,首先需要下载PyInstaller和UPXUPX是用来压缩exe的,点击超链接下载吧,目前稳定版本是1.3,注意选择你使用的操作系统。如在Windows下,将下载解压后的upx.e...
  • PyInstaller的作用如标题所说,首先需要下载PyInstaller和UPXUPX是用来压缩exe的,点击超链接下载吧,目前稳定版本是1.3,注意选择你使用的操作系统。如在Windows下,将下载解压后的upx.exe放到PyInstaller解...
  • 1、安装PyInstallerPyInstaller的作用如标题所说,首先需要下载PyInstaller和UPXUPX是用来压缩exe的,点击超链接下载吧,目前稳定版本是1.3,注意选择你使用的操作系统。如在Windows下,将下载解压后的upx.exe放到...
  • 使用uniapp做的h5页面,在PC端显示时,发现由于upx单位计算基准值太大,导致页面排班布局错乱 思路: 刚开始发现使用px单位不会导致页面布局混乱,但这对刚开启的项目友好,对已经成型的项目修改成本太高,风险也大...
  • PyInstaller的作用如标题所说,首先需要下载PyInstaller和UPXUPX是用来压缩exe的,点击超链接下载吧,目前稳定版本是1.3,注意选择你使用的操作系统。如在Windows下,将下载解压后的upx.exe放到PyInstaller解压后...
  • pwnable flag

    2020-04-11 21:46:54
    看见了UPX的字样,说明这个程序被加壳了 用upx命令脱壳 upx -d flag 感觉还是先运行一下,看看它会提示什么 它说会在堆里分配一块空间然后把flag复制过去 那就打开gdb吧,在strcpy那里下个断 gdb file flag b ...
  • 0x04flag 看题目描述似乎是一个和脱壳相关的逆向题目 ...UPX是一个著名的压缩壳,主要功能是压缩PE文件(比如exe,dll等文件),有时候也可能被病毒用于免杀.壳upx是一种保护程序。一般是EXE文件的一种外保护措施,主要用途
  • PyInstaller打包

    2016-06-16 11:09:22
    PyInstaller的作用如标题所说,首先需要下载PyInstaller和UPXUPX是用来压缩exe的,点击超链接下载吧,目前稳定版本是1.3,注意选择你使用的操作系统。如在Windows下,将下载解压后的upx.exe放到PyInstaller解压后...
  • Pyintaller

    2015-10-15 15:05:11
    PyInstaller的作用如标题所说,首先需要下载PyInstaller和UPXUPX是用来压缩exe的,点击超链接下载吧,目前稳定版本是1.3,注意选择你使用的操作系统。如在Windows下,将下载解压后的upx.exe放到PyInstaller解压后...

空空如也

空空如也

1 2 3 4
收藏数 78
精华内容 31
关键字:

upx吧