| 257 | } |
| 258 | |
| 259 | bool ProcessAccessHelp::decomposeMemory(BYTE * dataBuffer, SIZE_T bufferSize, DWORD_PTR startAddress) |
| 260 | { |
| 261 | |
| 262 | ZeroMemory(&decomposerCi, sizeof(_CodeInfo)); |
| 263 | decomposerCi.code = dataBuffer; |
| 264 | decomposerCi.codeLen = (int)bufferSize; |
| 265 | decomposerCi.dt = dt; |
| 266 | decomposerCi.codeOffset = startAddress; |
| 267 | |
| 268 | decomposerInstructionsCount = 0; |
| 269 | |
| 270 | if (distorm_decompose(&decomposerCi, decomposerResult, sizeof(decomposerResult)/sizeof(decomposerResult[0]), &decomposerInstructionsCount) == DECRES_INPUTERR) |
| 271 | { |
| 272 | #ifdef DEBUG_COMMENTS |
| 273 | Scylla::debugLog.log(L"decomposeMemory :: distorm_decompose == DECRES_INPUTERR"); |
| 274 | #endif |
| 275 | return false; |
| 276 | } |
| 277 | else |
| 278 | { |
| 279 | return true; |
| 280 | } |
| 281 | } |
| 282 | |
| 283 | bool ProcessAccessHelp::disassembleMemory(BYTE * dataBuffer, SIZE_T bufferSize, DWORD_PTR startOffset) |
| 284 | { |