Skip to content

Commit d4d9aea

Browse files
committed
Release of v0.5.1
2 parents c7cc1fc + 5435d55 commit d4d9aea

64 files changed

Lines changed: 533 additions & 643 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ matrix:
1818
osx_image: xcode10
1919
install:
2020
before_script:
21-
- HOMEBREW_NO_INSTALL_CLEANUP=1 HOMEBREW_NO_AUTO_UPDATE=1 brew install qt capstone bison flex ccache
21+
- HOMEBREW_NO_INSTALL_CLEANUP=1 brew install qt capstone bison flex ccache
2222
- mkdir build && cd build
2323
script:
2424
- cmake -DQt5_DIR=$(brew --prefix qt5)/lib/cmake/Qt5/ -DFLEX_EXECUTABLE=$(brew --prefix flex)/bin/flex -DBISON_EXECUTABLE=$(brew --prefix bison)/bin/bison -DBOOMERANG_BUILD_UNIT_TESTS=ON ..

Changelog.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
v0.5.1 (2019-10-11)
2+
-----------------------
3+
- Fixed: Possible crash when replacing Phi by Assign.
4+
- Fixed: Possible crash when analyzing binaries with a large number of debug information on Windows.
5+
- Fixed: Wrong decompilation of binaries containing a `bswap` instruction.
6+
- Fixed: Wrong decompilation of binaries containing an `xadd` instruction in some cases.
7+
- Fixed: Non-deterministic decompilation of functions containing removable return values.
8+
- Fixed: Non-deterministic order of case labels in some cases.
9+
- Fixed: Zero return value of boomerang-cli when command-line switch processing fails.
10+
- Fixed: Missing semantics for 16-bit `cmovCC`-type instructions.
11+
- Fixed: Missing semantics for `cmpxchg` and `cmpxchg8b` instructions.
12+
- Feature: Added '--log-level' switch to change log verbosity on startup.
13+
- Removed: Deprecated '-ds' switch.
14+
- Removed: Deprecated '-pa' switch.
15+
- Removed: Deprecated '-X' switch.
16+
- Technical: Updated minimum required version of dependencies.
17+
118
v0.5.0 (2019-7-11)
219
------------------
320
- Fixed: Crashes when reading malformed SSL specification files.

Readme.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ it is currently recommended to build the development version (`develop` branch)
2222

2323
- A 64 bit operating system (32 bit might or might not work, but it is not supported.)
2424
- A C++17 compiler (GCC 7+, Clang 6+, MSVC 2017+ are known to work)
25-
- [CMake](https://cmake.org/download/) 3.8+
26-
- [Qt5](https://www.qt.io/download-open-source/) (Qt 5.11+ is known to work, earlier versions should also work)
27-
- [Capstone](http://www.capstone-engine.org/) 3.0.5+
28-
- [GNU bison](https://www.gnu.org/software/bison/) 3.0+ (3.0.5+ is recommended)
25+
- [CMake](https://cmake.org/download/) 3.13+
26+
- [Qt5](https://www.qt.io/download-open-source/) (Qt 5.12+ is known to work, earlier versions should also work)
27+
- [Capstone](http://www.capstone-engine.org/) 4.0.1+
28+
- [GNU bison](https://www.gnu.org/software/bison/) 3.3+
2929
- [GNU flex](https://github.com/westes/flex) 2.6+
3030
- [CCache](https://ccache.samba.org/download.html) 3.2+ (optional, for recompilation speed)
3131
- [Doxygen](http://www.doxygen.nl/) 1.8+ (optional, for documentation)

appveyor.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,6 @@ init:
4141
- cmd: cmake --version
4242
- cmd: msbuild /version
4343

44-
install:
45-
- cd C:\Tools\vcpkg
46-
- git fetch
47-
- git checkout 06d5d393b962604ae0a0f8fa6cfd1a89d0627e83
48-
- cd %APPVEYOR_BUILD_FOLDER%
49-
5044
before_build:
5145
- ps: cd C:\projects\boomerang
5246
- ps: mkdir build

cmake-scripts/boomerang-dependencies.cmake

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,7 @@ if (Qt5_FOUND)
1212
endif (Qt5_FOUND)
1313

1414
find_package(Threads)
15-
find_package(Capstone 3.0.5 REQUIRED)
15+
find_package(Capstone 4.0.1 REQUIRED)
1616

1717
find_package(FLEX 2.6 REQUIRED)
18-
find_package(BISON 3.0 REQUIRED)
19-
20-
if (BISON_VERSION VERSION_LESS 3.0.5)
21-
message(WARNING "It is recommended to use Bison 3.0.5 or later")
22-
endif ()
18+
find_package(BISON 3.3 REQUIRED)

cmake-scripts/boomerang-utils.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ include(CMakeParseArguments)
1111

1212
#
1313
# Copy the Debug and Release DLL(s) for an IMPORTED target to the output directory on Windows
14-
# Example: BOOMERANG_COPY_IMPORTED_DLL(Qt5::Core)
14+
# Example: BOOMERANG_COPY_IMPORTED_DLL(boomerang Qt5::Core)
1515
#
1616
function(BOOMERANG_COPY_IMPORTED_DLL TargetName ImportedName)
1717
if (MSVC)

data/ssl/x86.ssl

Lines changed: 122 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -977,7 +977,7 @@ AND.rm64.reg64 dest, src
977977
# BSWAP
978978
BSWAP.reg16 dest
979979
*16* dest := ((dest & 0x00FF) << 8) |
980-
((dest & 0xFF00) > 8)
980+
((dest & 0xFF00) >> 8)
981981
;
982982

983983

@@ -1262,87 +1262,143 @@ CMC
12621262

12631263

12641264
# CMOVcc
1265+
CMOVA.reg16.reg16 dest, src *16* dest := [(~%CF && ~%ZF) ? src : dest];
1266+
CMOVA.reg16.rm16 dest, src *16* dest := [(~%CF && ~%ZF) ? src : dest];
12651267
CMOVA.reg32.reg32 dest, src *32* dest := [(~%CF && ~%ZF) ? src : dest];
12661268
CMOVA.reg32.rm32 dest, src *32* dest := [(~%CF && ~%ZF) ? src : dest];
12671269

1270+
CMOVAE.reg16.reg16 dest, src *16* dest := [(%CF = 0) ? src : dest];
1271+
CMOVAE.reg16.rm16 dest, src *16* dest := [(%CF = 0) ? src : dest];
12681272
CMOVAE.reg32.reg32 dest, src *32* dest := [(%CF = 0) ? src : dest];
12691273
CMOVAE.reg32.rm32 dest, src *32* dest := [(%CF = 0) ? src : dest];
12701274

1275+
CMOVB.reg16.reg16 dest, src *16* dest := [(%CF = 1) ? src : dest];
1276+
CMOVB.reg16.rm16 dest, src *16* dest := [(%CF = 1) ? src : dest];
12711277
CMOVB.reg32.reg32 dest, src *32* dest := [(%CF = 1) ? src : dest];
12721278
CMOVB.reg32.rm32 dest, src *32* dest := [(%CF = 1) ? src : dest];
12731279

1280+
CMOVBE.reg16.reg16 dest, src *16* dest := [(%CF || %ZF) ? src : dest];
1281+
CMOVBE.reg16.rm16 dest, src *16* dest := [(%CF || %ZF) ? src : dest];
12741282
CMOVBE.reg32.reg32 dest, src *32* dest := [(%CF || %ZF) ? src : dest];
12751283
CMOVBE.reg32.rm32 dest, src *32* dest := [(%CF || %ZF) ? src : dest];
12761284

1285+
CMOVC.reg16.reg16 dest, src *16* dest := [(%CF = 1) ? src : dest];
1286+
CMOVC.reg16.rm16 dest, src *16* dest := [(%CF = 1) ? src : dest];
12771287
CMOVC.reg32.reg32 dest, src *32* dest := [(%CF = 1) ? src : dest];
12781288
CMOVC.reg32.rm32 dest, src *32* dest := [(%CF = 1) ? src : dest];
12791289

1290+
CMOVE.reg16.reg16 dest, src *16* dest := [(%ZF = 1) ? src : dest];
1291+
CMOVE.reg16.rm16 dest, src *16* dest := [(%ZF = 1) ? src : dest];
12801292
CMOVE.reg32.reg32 dest, src *32* dest := [(%ZF = 1) ? src : dest];
12811293
CMOVE.reg32.rm32 dest, src *32* dest := [(%ZF = 1) ? src : dest];
12821294

1295+
CMOVG.reg16.reg16 dest, src *16* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
1296+
CMOVG.reg16.rm16 dest, src *16* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
12831297
CMOVG.reg32.reg32 dest, src *32* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
12841298
CMOVG.reg32.rm32 dest, src *32* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
12851299

1300+
CMOVGE.reg16.reg16 dest, src *16* dest := [(~(%SF ^ %OF)) ? src : dest];
1301+
CMOVGE.reg16.rm16 dest, src *16* dest := [(~(%SF ^ %OF)) ? src : dest];
12861302
CMOVGE.reg32.reg32 dest, src *32* dest := [(~(%SF ^ %OF)) ? src : dest];
12871303
CMOVGE.reg32.rm32 dest, src *32* dest := [(~(%SF ^ %OF)) ? src : dest];
12881304

1305+
CMOVL.reg16.reg16 dest, src *16* dest := [(%SF ^ %OF) ? src : dest];
1306+
CMOVL.reg16.rm16 dest, src *16* dest := [(%SF ^ %OF) ? src : dest];
12891307
CMOVL.reg32.reg32 dest, src *32* dest := [(%SF ^ %OF) ? src : dest];
12901308
CMOVL.reg32.rm32 dest, src *32* dest := [(%SF ^ %OF) ? src : dest];
12911309

1310+
CMOVLE.reg16.reg16 dest, src *16* dest := [(%ZF || (%SF ^ %OF)) ? src : dest];
1311+
CMOVLE.reg16.rm16 dest, src *16* dest := [(%ZF || (%SF ^ %OF)) ? src : dest];
12921312
CMOVLE.reg32.reg32 dest, src *32* dest := [(%ZF || (%SF ^ %OF)) ? src : dest];
12931313
CMOVLE.reg32.rm32 dest, src *32* dest := [(%ZF || (%SF ^ %OF)) ? src : dest];
12941314

1315+
CMOVNA.reg16.reg16 dest, src *16* dest := [(%CF || %ZF) ? src : dest];
1316+
CMOVNA.reg16.rm16 dest, src *16* dest := [(%CF || %ZF) ? src : dest];
12951317
CMOVNA.reg32.reg32 dest, src *32* dest := [(%CF || %ZF) ? src : dest];
12961318
CMOVNA.reg32.rm32 dest, src *32* dest := [(%CF || %ZF) ? src : dest];
12971319

1320+
CMOVNAE.reg16.reg16 dest, src *16* dest := [(%CF = 1) ? src : dest];
1321+
CMOVNAE.reg16.rm16 dest, src *16* dest := [(%CF = 1) ? src : dest];
12981322
CMOVNAE.reg32.reg32 dest, src *32* dest := [(%CF = 1) ? src : dest];
12991323
CMOVNAE.reg32.rm32 dest, src *32* dest := [(%CF = 1) ? src : dest];
13001324

1325+
CMOVNB.reg16.reg16 dest, src *16* dest := [(%CF = 0) ? src : dest];
1326+
CMOVNB.reg16.rm16 dest, src *16* dest := [(%CF = 0) ? src : dest];
13011327
CMOVNB.reg32.reg32 dest, src *32* dest := [(%CF = 0) ? src : dest];
13021328
CMOVNB.reg32.rm32 dest, src *32* dest := [(%CF = 0) ? src : dest];
13031329

1330+
CMOVNBE.reg16.reg16 dest, src *16* dest := [(~%CF && ~%ZF) ? src : dest];
1331+
CMOVNBE.reg16.rm16 dest, src *16* dest := [(~%CF && ~%ZF) ? src : dest];
13041332
CMOVNBE.reg32.reg32 dest, src *32* dest := [(~%CF && ~%ZF) ? src : dest];
13051333
CMOVNBE.reg32.rm32 dest, src *32* dest := [(~%CF && ~%ZF) ? src : dest];
13061334

1335+
CMOVNC.reg16.reg16 dest, src *16* dest := [(%CF = 0) ? src : dest];
1336+
CMOVNC.reg16.rm16 dest, src *16* dest := [(%CF = 0) ? src : dest];
13071337
CMOVNC.reg32.reg32 dest, src *32* dest := [(%CF = 0) ? src : dest];
13081338
CMOVNC.reg32.rm32 dest, src *32* dest := [(%CF = 0) ? src : dest];
13091339

1340+
CMOVNE.reg16.reg16 dest, src *16* dest := [(%ZF = 0) ? src : dest];
1341+
CMOVNE.reg16.rm16 dest, src *16* dest := [(%ZF = 0) ? src : dest];
13101342
CMOVNE.reg32.reg32 dest, src *32* dest := [(%ZF = 0) ? src : dest];
13111343
CMOVNE.reg32.rm32 dest, src *32* dest := [(%ZF = 0) ? src : dest];
13121344

1345+
CMOVNG.reg16.reg16 dest, src *16* dest := [(%ZF || (%SF ^ %OF)) ? src : dest];
1346+
CMOVNG.reg16.rm16 dest, src *16* dest := [(%ZF || (%SF ^ %OF)) ? src : dest];
13131347
CMOVNG.reg32.reg32 dest, src *32* dest := [(%ZF || (%SF ^ %OF)) ? src : dest];
13141348
CMOVNG.reg32.rm32 dest, src *32* dest := [(%ZF || (%SF ^ %OF)) ? src : dest];
13151349

1350+
CMOVNGE.reg16.reg16 dest, src *16* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
1351+
CMOVNGE.reg16.rm16 dest, src *16* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
13161352
CMOVNGE.reg32.reg32 dest, src *32* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
13171353
CMOVNGE.reg32.rm32 dest, src *32* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
13181354

1355+
CMOVNL.reg16.reg16 dest, src *16* dest := [(~(%SF ^ %OF)) ? src : dest];
1356+
CMOVNL.reg16.rm16 dest, src *16* dest := [(~(%SF ^ %OF)) ? src : dest];
13191357
CMOVNL.reg32.reg32 dest, src *32* dest := [(~(%SF ^ %OF)) ? src : dest];
13201358
CMOVNL.reg32.rm32 dest, src *32* dest := [(~(%SF ^ %OF)) ? src : dest];
13211359

1360+
CMOVNLE.reg16.reg16 dest, src *16* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
1361+
CMOVNLE.reg16.rm16 dest, src *16* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
13221362
CMOVNLE.reg32.reg32 dest, src *32* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
13231363
CMOVNLE.reg32.rm32 dest, src *32* dest := [(~%ZF && ~(%SF ^ %OF)) ? src : dest];
13241364

1365+
CMOVNO.reg16.reg16 dest, src *16* dest := [(~%OF) ? src : dest];
1366+
CMOVNO.reg16.rm16 dest, src *16* dest := [(~%OF) ? src : dest];
13251367
CMOVNO.reg32.reg32 dest, src *32* dest := [(~%OF) ? src : dest];
13261368
CMOVNO.reg32.rm32 dest, src *32* dest := [(~%OF) ? src : dest];
13271369

1370+
CMOVNP.reg16.reg16 dest, src *16* dest := [(~%PF) ? src : dest];
1371+
CMOVNP.reg16.rm16 dest, src *16* dest := [(~%PF) ? src : dest];
13281372
CMOVNP.reg32.reg32 dest, src *32* dest := [(~%PF) ? src : dest];
13291373
CMOVNP.reg32.rm32 dest, src *32* dest := [(~%PF) ? src : dest];
13301374

1375+
CMOVNS.reg16.reg16 dest, src *16* dest := [(~%SF) ? src : dest];
1376+
CMOVNS.reg16.rm16 dest, src *16* dest := [(~%SF) ? src : dest];
13311377
CMOVNS.reg32.reg32 dest, src *32* dest := [(~%SF) ? src : dest];
13321378
CMOVNS.reg32.rm32 dest, src *32* dest := [(~%SF) ? src : dest];
13331379

1380+
CMOVNZ.reg16.reg16 dest, src *16* dest := [(~%ZF) ? src : dest];
1381+
CMOVNZ.reg16.rm16 dest, src *16* dest := [(~%ZF) ? src : dest];
13341382
CMOVNZ.reg32.reg32 dest, src *32* dest := [(~%ZF) ? src : dest];
13351383
CMOVNZ.reg32.rm32 dest, src *32* dest := [(~%ZF) ? src : dest];
13361384

1385+
CMOVO.reg16.reg16 dest, src *16* dest := [(%OF) ? src : dest];
1386+
CMOVO.reg16.rm16 dest, src *16* dest := [(%OF) ? src : dest];
13371387
CMOVO.reg32.reg32 dest, src *32* dest := [(%OF) ? src : dest];
13381388
CMOVO.reg32.rm32 dest, src *32* dest := [(%OF) ? src : dest];
13391389

1390+
CMOVP.reg16.reg16 dest, src *16* dest := [(%PF) ? src : dest];
1391+
CMOVP.reg16.rm16 dest, src *16* dest := [(%PF) ? src : dest];
13401392
CMOVP.reg32.reg32 dest, src *32* dest := [(%PF) ? src : dest];
13411393
CMOVP.reg32.rm32 dest, src *32* dest := [(%PF) ? src : dest];
13421394

1395+
CMOVS.reg16.reg16 dest, src *16* dest := [(%SF) ? src : dest];
1396+
CMOVS.reg16.rm16 dest, src *16* dest := [(%SF) ? src : dest];
13431397
CMOVS.reg32.reg32 dest, src *32* dest := [(%SF) ? src : dest];
13441398
CMOVS.reg32.rm32 dest, src *32* dest := [(%SF) ? src : dest];
13451399

1400+
CMOVZ.reg16.reg16 dest, src *16* dest := [(%ZF) ? src : dest];
1401+
CMOVZ.reg16.rm16 dest, src *16* dest := [(%ZF) ? src : dest];
13461402
CMOVZ.reg32.reg32 dest, src *32* dest := [(%ZF) ? src : dest];
13471403
CMOVZ.reg32.rm32 dest, src *32* dest := [(%ZF) ? src : dest];
13481404

@@ -1465,13 +1521,40 @@ CMP.rm64.reg64 lhs, rhs
14651521

14661522

14671523
# CMPXCHG
1524+
CMPXCHG.reg8.reg8 dest, src
1525+
*1* %ZF := %al = dest
1526+
*8* %ZF = 1 => dest := src
1527+
*8* %ZF = 0 => %al := dest
1528+
;
1529+
1530+
CMPXCHG.reg16.reg16 dest, src
1531+
*1* %ZF := %ax = dest
1532+
*16* %ZF = 1 => dest := src
1533+
*16* %ZF = 0 => %ax := dest
1534+
;
1535+
1536+
CMPXCHG.reg32.reg32 dest, src
1537+
*1* %ZF := %eax = dest
1538+
*32* %ZF = 1 => dest := src
1539+
*32* %ZF = 0 => %eax := dest
1540+
;
1541+
14681542
CMPXCHG.rm32.reg32 dest, src
14691543
*1* %ZF := %eax = dest
14701544
*32* %ZF = 1 => dest := src
14711545
*32* %ZF = 0 => %eax := dest
14721546
;
14731547

14741548

1549+
# CMPXCHG8B
1550+
CMPXCHG8B.rm64 dest
1551+
*1* %ZF := (dest@[0:31] = %eax) && (dest@[32:63] = %edx)
1552+
*64* %ZF = 1 => dest := %ebx | %ecx << 32
1553+
*32* %ZF = 0 => %eax := dest@[0:31]
1554+
*32* %ZF = 0 => %edx := dest@[32:63]
1555+
;
1556+
1557+
14751558
# CWD
14761559
CWD
14771560
*16* %dx := [%ax@[15:15] = 0 ? 0:0xFFFF]
@@ -4116,28 +4199,60 @@ WAIT
41164199

41174200

41184201
# XADD
4202+
XADD.reg8.reg8 dest, src
4203+
*8* tmp_src := src
4204+
*8* tmpb := src + dest
4205+
*8* src := dest
4206+
*8* dest := tmpb
4207+
ADDFLAGS8(tmp_src, src, dest)
4208+
;
4209+
41194210
XADD.rm8.reg8 dest, src
4211+
*8* tmp_src := src
41204212
*8* tmpb := src + dest
41214213
*8* src := dest
41224214
*8* dest := tmpb
4215+
ADDFLAGS8(tmp_src, src, dest)
4216+
;
4217+
4218+
XADD.reg16.reg16 dest, src
4219+
*16* tmp_src := src
4220+
*16* tmph := src + dest
4221+
*16* src := dest
4222+
*16* dest := tmph
4223+
ADDFLAGS16(tmp_src, src, dest)
41234224
;
41244225

41254226
XADD.rm16.reg16 dest, src
4227+
*16* tmp_src := src
41264228
*16* tmph := src + dest
41274229
*16* src := dest
41284230
*16* dest := tmph
4231+
ADDFLAGS16(tmp_src, src, dest)
4232+
;
4233+
4234+
XADD.reg32.reg32 dest, src
4235+
*32* tmp_src := src
4236+
*32* tmp1 := src + dest
4237+
*32* src := dest
4238+
*32* dest := tmp1
4239+
ADDFLAGS32(tmp_src, src, dest)
41294240
;
41304241

41314242
XADD.rm32.reg32 dest, src
4132-
*8* tmp1 := src + dest
4133-
*8* src := dest
4134-
*8* dest := tmp1
4243+
*32* tmp_src := src
4244+
*32* tmp1 := src + dest
4245+
*32* src := dest
4246+
*32* dest := tmp1
4247+
ADDFLAGS32(tmp_src, src, dest)
41354248
;
41364249

41374250
XADD.rm64.reg64 dest, src
4138-
*8* tmp1 := src + dest
4139-
*8* src := dest
4140-
*8* dest := tmp1
4251+
*64* tmp_src := src
4252+
*64* tmp1 := src + dest
4253+
*64* src := dest
4254+
*64* dest := tmp1
4255+
ADDFLAGS64(tmp_src, src, dest)
41414256
;
41424257

41434258

scripts/appveyor-generate.ps1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
$QT_VERSION="5.11"
2+
$QT_VERSION="5.12"
33

44
if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2017") {
55
$CMAKE_GENERATOR_NAME = "Visual Studio 15 2017 Win64"
@@ -11,13 +11,13 @@ $env:QTDIR = "$QT_BASE_DIR"
1111
# Install flex + bison via winflexbison
1212
if (!(Test-Path winflexbison.zip)) {
1313
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
14-
if (Invoke-WebRequest -Uri https://github.com/lexxmark/winflexbison/releases/download/v2.5.16/winflexbison-2.5.16.zip -OutFile winflexbison.zip) {
14+
if (Invoke-WebRequest -Uri https://github.com/lexxmark/winflexbison/releases/download/v2.5.18/win_flex_bison-2.5.18.zip -OutFile winflexbison.zip) {
1515
Write-Output "Could not download winflexbison"
1616
exit 1
1717
}
1818
}
1919

20-
$expectedhash = "223CEBAAD0E1AF63A04F5C71F578AFB9C2233C09B5D69EA78C63F810EBD1364B"
20+
$expectedhash = "095CF65CB3F12EE5888022F93109ACBE6264E5F18F6FFCE0BDA77FEB31B65BD8"
2121
$actualhash = (Get-FileHash -Algorithm "SHA256" winflexbison.zip).hash
2222

2323
if ($actualhash -ne $expectedhash) {

src/boomerang-cli/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ set(boomerang-cli-sources
1414
Console
1515
CommandlineDriver
1616
Main
17-
MiniDebugger
1817
)
1918

2019
BOOMERANG_LIST_APPEND_FOREACH(boomerang-cli-sources ".cpp")

0 commit comments

Comments
 (0)